load("df.Rdata")
attributes(df)$label <- c("This is a test", "HERE BE ITEM STEM")
codebook::codebook(df)## Warning in codebook::codebook(df): The variables session, created, ended
## have to be defined for automatic survey repetition detection to work. Set
## to no repetition by default.

knitr::asis_output(survey_overview)knitr::asis_output(paste0(scales_items, sep = "\n\n\n", collapse = "\n\n\n"))show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}## 1165 unique, categorical values, so not shown.
knitr::opts_chunk$set(fig.height = old_height)0 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 | V17 | V18 | V19 | V20 | V21 | V22 | V23 | V24 | V25 | V26 | V27 | V28 | V29 | V30 | V31 | V32 | V33 | V34 | V35 | V36 | V37 | V38 | V39 | V40 | V41 | V42 | V43 | V44 | V45 | V46 | V47 | V48 | V49 | V50 | V51 | V52 | V53 | V54 | V55 | V56 | V57 | V58 | V59 | V60 | V61 | V62 | V63 | V64 | V65 | V66 | V67 | V68 | V69 | V70 | V71 | V72 | V73 | V74 | V75 | V76 | V77 | V78 | V79 | V80 | V81 | V82 | V83 | V84 | V85 | V86 | V87 | V88 | V89 | V90 | V91 | V92 | V93 | V94 | V95 | V96 | V97 | V98 | V99 | V100 | V101 | V102 | V103 | V104 | V105 | V106 | V107 | V108 | V109 | V110 | V111 | V112 | V113 | V114 | V115 | V116 | V117 | V118 | V119 | V120 | V121 | V122 | V123 | V124 | V125 | V126 | V127 | V128 | V129 | V130 | V131 | V132 | V133 | V134 | V135 | V136 | V137 | V138 | V139 | V140 | V141 | V142 | V143 | V144 | V145 | V146 | V147 | V148 | V149 | V150 | V151 | V152 | V153 | V154 | V155 | V156 | V157 | V158 | V159 | V160 | V161 | V162 | V163 | V164 | V165 | V166 | V167 | V168 | V169 | V170 | V171 | V172 | V173 | V174 | V175 | V176 | V177 | V178 | V179 | V180 | V181 | V182 | V183 | V184 | V185 | V186 | V187 | V188 | V189 | V190 | V191 | V192 | V193 | V194 | V195 | V196 | V197 | V198 | V199 | V200 | V201 | V202 | V203 | V204 | V205 | V206 | V207 | V208 | V209 | V210 | V211 | V212 | V213 | V214 | V215 | V216 | V217 | V218 | V219 | V220 | V221 | V222 | V223 | V224 | V225 | V226 | V227 | V228 | V229 | V230 | V231 | V232 | V233 | V234 | V235 | V236 | V237 | V238 | V239 | V240 | V241 | V242 | V243 | V244 | V245 | V246 | V247 | V248 | V249 | V250 | V251 | V252 | V253 | V254 | V255 | V256 | V257 | V258 | V259 | V260 | V261 | V262 | V263 | V264 | V265 | V266 | V267 | V268 | V269 | V270 | V271 | V272 | V273 | V274 | V275 | V276 | V277 | V278 | V279 | V280 | V281 | V282 | V283 | V284 | V285 | V286 | V287 | V288 | V289 | V290 | V291 | V292 | V293 | V294 | V295 | V296 | V297 | V298 | V299 | V300 | V301 | V302 | V303 | V304 | V305 | V306 | V307 | V308 | V309 | V310 | V311 | V312 | V313 | V314 | V315 | V316 | V317 | V318 | V319 | V320 | V321 | V322 | V323 | V324 | V325 | V326 | V327 | V328 | V329 | V330 | V331 | V332 | V333 | V334 | V335 | V336 | V337 | V338 | V339 | V340 | V341 | V342 | V343 | V344 | V345 | V346 | V347 | V348 | V349 | V350 | V351 | V352 | V353 | V354 | V355 | V356 | V357 | V358 | V359 | V360 | V361 | V362 | V363 | V364 | V365 | V366 | V367 | V368 | V369 | V370 | V371 | V372 | V373 | V374 | V375 | V376 | V377 | V378 | V379 | V380 | V381 | V382 | V383 | V384 | V385 | V386 | V387 | V388 | V389 | V390 | V391 | V392 | V393 | V394 | V395 | V396 | V397 | V398 | V399 | V400 | V401 | V402 | V403 | V404 | V405 | V406 | V407 | V408 | V409 | V410 | V411 | V412 | V413 | V414 | V415 | V416 | V417 | V418 | V419 | V420 | V421 | V422 | V423 | V424 | V425 | V426 | V427 | V428 | V429 | V430 | V431 | V432 | V433 | V434 | V435 | V436 | V437 | V438 | V439 | V440 | V441 | V442 | V443 | V444 | V445 | V446 | V447 | V448 | V449 | V450 | V451 | V452 | V453 | V454 | V455 | V456 | V457 | V458 | V459 | V460 | V461 | V462 | V463 | V464 | V465 | V466 | V467 | V468 | V469 | V470 | V471 | V472 | V473 | V474 | V475 | V476 | V477 | V478 | V479 | V480 | V481 | V482 | V483 | V484 | V485 | V486 | V487 | V488 | V489 | V490 | V491 | V492 | V493 | V494 | V495 | V496 | V497 | V498 | V499 | V500 | V501 | V502 | V503 | V504 | V505 | V506 | V507 | V508 | V509 | V510 | V511 | V512 | V513 | V514 | V515 | V516 | V517 | V518 | V519 | V520 | V521 | V522 | V523 | V524 | V525 | V526 | V527 | V528 | V529 | V530 | V531 | V532 | V533 | V534 | V535 | V536 | V537 | V538 | V539 | V540 | V541 | V542 | V543 | V544 | V545 | V546 | V547 | V548 | V549 | V550 | V551 | V552 | V553 | V554 | V555 | V556 | V557 | V558 | V559 | V560 | V561 | V562 | V563 | V564 | V565 | V566 | V567 | V568 | V569 | V570 | V571 | V572 | V573 | V574 | V575 | V576 | V577 | V578 | V579 | V580 | V581 | V582 | V583 | V584 | V585 | V586 | V587 | V588 | V589 | V590 | V591 | V592 | V593 | V594 | V595 | V596 | V597 | V598 | V599 | V600 | V601 | V602 | V603 | V604 | V605 | V606 | V607 | V608 | V609 | V610 | V611 | V612 | V613 | V614 | V615 | V616 | V617 | V618 | V619 | V620 | V621 | V622 | V623 | V624 | V625 | V626 | V627 | V628 | V629 | V630 | V631 | V632 | V633 | V634 | V635 | V636 | V637 | V638 | V639 | V640 | V641 | V642 | V643 | V644 | V645 | V646 | V647 | V648 | V649 | V650 | V651 | V652 | V653 | V654 | V655 | V656 | V657 | V658 | V659 | V660 | V661 | V662 | V663 | V664 | V665 | V666 | V667 | V668 | V669 | V670 | V671 | V672 | V673 | V674 | V675 | V676 | V677 | V678 | V679 | V680 | V681 | V682 | V683 | V684 | V685 | V686 | V687 | V688 | V689 | V690 | V691 | V692 | V693 | V694 | V695 | V696 | V697 | V698 | V699 | V700 | V701 | V702 | V703 | V704 | V705 | V706 | V707 | V708 | V709 | V710 | V711 | V712 | V713 | V714 | V715 | V716 | V717 | V718 | V719 | V720 | V721 | V722 | V723 | V724 | V725 | V726 | V727 | V728 | V729 | V730 | V731 | V732 | V733 | V734 | V735 | V736 | V737 | V738 | V739 | V740 | V741 | V742 | V743 | V744 | V745 | V746 | V747 | V748 | V749 | V750 | V751 | V752 | V753 | V754 | V755 | V756 | V757 | V758 | V759 | V760 | V761 | V762 | V763 | V764 | V765 | V766 | V767 | V768 | V769 | V770 | V771 | V772 | V773 | V774 | V775 | V776 | V777 | V778 | V779 | V780 | V781 | V782 | V783 | V784 | V785 | V786 | V787 | V788 | V789 | V790 | V791 | V792 | V793 | V794 | V795 | V796 | V797 | V798 | V799 | V800 | V801 | V802 | V803 | V804 | V805 | V806 | V807 | V808 | V809 | V810 | V811 | V812 | V813 | V814 | V815 | V816 | V817 | V818 | V819 | V820 | V821 | V822 | V823 | V824 | V825 | V826 | V827 | V828 | V829 | V830 | V831 | V832 | V833 | V834 | V835 | V836 | V837 | V838 | V839 | V840 | V841 | V842 | V843 | V844 | V845 | V846 | V847 | V848 | V849 | V850 | V851 | V852 | V853 | V854 | V855 | V856 | V857 | V858 | V859 | V860 | V861 | V862 | V863 | V864 | V865 | V866 | V867 | V868 | V869 | V870 | V871 | V872 | V873 | V874 | V875 | V876 | V877 | V878 | V879 | V880 | V881 | V882 | V883 | V884 | V885 | V886 | V887 | V888 | V889 | V890 | V891 | V892 | V893 | V894 | V895 | V896 | V897 | V898 | V899 | V900 | V901 | V902 | V903 | V904 | V905 | V906 | V907 | V908 | V909 | V910 | V911 | V912 | V913 | V914 | V915 | V916 | V917 | V918 | V919 | V920 | V921 | V922 | V923 | V924 | V925 | V926 | V927 | V928 | V929 | V930 | V931 | V932 | V933 | V934 | V935 | V936 | V937 | V938 | V939 | V940 | V941 | V942 | V943 | V944 | V945 | V946 | V947 | V948 | V949 | V950 | V951 | V952 | V953 | V954 | V955 | V956 | V957 | V958 | V959 | V960 | V961 | V962 | V963 | V964 | V965 | V966 | V967 | V968 | V969 | V970 | V971 | V972 | V973 | V974 | V975 | V976 | V977 | V978 | V979 | V980 | V981 | V982 | V983 | V984 | V985 | V986 | V987 | V988 | V989 | V990 | V991 | V992 | V993 | V994 | V995 | V996 | V997 | V998 | V999 | V1000 | V1001 | V1002 | V1003 | V1004 | V1005 | V1006 | V1007 | V1008 | V1009 | V1010 | V1011 | V1012 | V1013 | V1014 | V1015 | V1016 | V1017 | V1018 | V1019 | V1020 | V1021 | V1022 | V1023 | V1024 | V1025 | V1026 | V1027 | V1028 | V1029 | V1030 | V1031 | V1032 | V1033 | V1034 | V1035 | V1036 | V1037 | V1038 | V1039 | V1040 | V1041 | V1042 | V1043 | V1044 | V1045 | V1046 | V1047 | V1048 | V1049 | V1050 | V1051 | V1052 | V1053 | V1054 | V1055 | V1056 | V1057 | V1058 | V1059 | V1060 | V1061 | V1062 | V1063 | V1064 | V1065 | V1066 | V1067 | V1068 | V1069 | V1070 | V1071 | V1072 | V1073 | V1074 | V1075 | V1076 | V1077 | V1078 | V1079 | V1080 | V1081 | V1082 | V1083 | V1084 | V1085 | V1086 | V1087 | V1088 | V1089 | V1090 | V1091 | V1092 | V1093 | V1094 | V1095 | V1096 | V1097 | V1098 | V1099 | V1100 | V1101 | V1102 | V1103 | V1104 | V1105 | V1106 | V1107 | V1108 | V1109 | V1110 | V1111 | V1112 | V1113 | V1114 | V1115 | V1116 | V1117 | V1118 | V1119 | V1120 | V1121 | V1122 | V1123 | V1124 | V1125 | V1126 | V1127 | V1128 | V1129 | V1130 | V1131 | V1132 | V1133 | V1134 | V1135 | V1136 | V1137 | V1138 | V1139 | V1140 | V1141 | V1142 | V1143 | V1144 | V1145 | V1146 | V1147 | V1148 | V1149 | V1150 | V1151 | V1152 | V1153 | V1154 | V1155 | V1156 | V1157 | V1158 | V1159 | V1160 | V1161 | V1162 | V1163 | V1164 | V1165 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id | factor | FALSE | 0 | 1165 | 1165 | 1165 | 1-1: 1, 1-1: 1, 1-1: 1, 1-1: 1 | 1-1-0004 | 1-1-0011 | 1-1-0012 | 1-1-0019 | 1-1-0020 | 1-1-0022 | 1-1-0040 | 1-1-0041 | 1-1-0055 | 1-1-0056 | 1-1-0060 | 1-1-0069 | 1-1-0084 | 1-1-0092 | 1-1-0103 | 1-1-0114 | 1-1-0115 | 1-1-0118 | 1-1-0123 | 1-1-0124 | 1-1-0139 | 1-1-0144 | 1-1-0158 | 1-1-0173 | 1-1-0174 | 1-1-0182 | 1-1-0186 | 1-1-0188 | 1-1-0194 | 1-1-0197 | 1-1-0202 | 1-1-0215 | 1-1-0219 | 1-1-0220 | 1-1-0224 | 1-1-0225 | 1-1-0228 | 1-1-0230 | 1-1-0231 | 1-1-0251 | 1-1-0260 | 1-1-0272 | 1-1-0275 | 1-1-0288 | 1-1-0292 | 1-1-0296 | 1-1-0301 | 1-1-0309 | 1-1-0319 | 1-1-0320 | 1-1-0330 | 1-1-0333 | 1-1-0338 | 1-1-0345 | 1-1-0350 | 1-1-0355 | 1-1-0357 | 1-1-0361 | 1-1-0364 | 1-1-0372 | 1-1-0376 | 1-1-0383 | 1-1-0387 | 1-1-0399 | 1-1-0401 | 1-1-0404 | 1-1-0409 | 1-1-0411 | 1-1-0415 | 1-1-0416 | 1-1-0426 | 1-1-0430 | 1-1-0432 | 1-1-0442 | 1-1-0453 | 1-1-0479 | 1-1-0505 | 1-1-0506 | 1-1-0509 | 1-1-0510 | 1-1-0515 | 1-1-0517 | 1-1-0521 | 1-1-0530 | 1-1-0546 | 1-1-0550 | 1-1-0572 | 1-1-0580 | 1-1-0595 | 1-1-0606 | 1-1-0610 | 1-1-0618 | 1-1-0639 | 1-1-0652 | 1-1-0657 | 1-1-0681 | 1-1-0688 | 1-1-0714 | 1-1-0721 | 1-1-0725 | 1-1-0727 | 1-1-0738 | 1-1-0752 | 1-1-0774 | 1-1-0792 | 1-1-0794 | 1-1-0797 | 1-1-0801 | 1-1-0807 | 1-1-0809 | 1-1-0812 | 1-1-0820 | 1-1-0833 | 1-1-0846 | 1-1-0856 | 1-1-0860 | 1-1-0870 | 1-1-0879 | 1-1-0880 | 1-1-0881 | 1-1-0893 | 1-1-0900 | 1-1-0902 | 1-1-0906 | 1-1-0917 | 1-1-0940 | 1-1-0941 | 1-1-0960 | 1-1-0966 | 1-1-0969 | 1-1-0988 | 1-1-0991 | 1-1-1010 | 1-1-1012 | 1-1-1015 | 1-1-1016 | 1-1-1017 | 1-1-1022 | 1-1-1027 | 1-1-1028 | 1-1-1035 | 1-1-1048 | 1-1-1064 | 1-1-1065 | 1-1-1073 | 1-1-1083 | 1-1-1086 | 1-1-1093 | 1-1-1097 | 1-1-1100 | 1-1-1108 | 1-1-1112 | 1-1-1116 | 1-1-1126 | 1-1-1134 | 1-1-1163 | 1-1-1166 | 1-2-0005 | 1-2-0032 | 1-2-0050 | 1-2-0077 | 1-2-0085 | 1-2-0096 | 1-2-0126 | 1-2-0159 | 1-2-0181 | 1-2-0185 | 1-2-0198 | 1-2-0217 | 1-2-0257 | 1-2-0261 | 1-2-0264 | 1-2-0278 | 1-2-0285 | 1-2-0290 | 1-2-0304 | 1-2-0326 | 1-2-0352 | 1-2-0367 | 1-2-0374 | 1-2-0390 | 1-2-0408 | 1-2-0413 | 1-2-0421 | 1-2-0424 | 1-2-0425 | 1-2-0428 | 1-2-0447 | 1-2-0448 | 1-2-0450 | 1-2-0492 | 1-2-0497 | 1-2-0507 | 1-2-0518 | 1-2-0522 | 1-2-0524 | 1-2-0535 | 1-2-0537 | 1-2-0544 | 1-2-0545 | 1-2-0571 | 1-2-0574 | 1-2-0575 | 1-2-0581 | 1-2-0597 | 1-2-0613 | 1-2-0617 | 1-2-0631 | 1-2-0661 | 1-2-0678 | 1-2-0679 | 1-2-0685 | 1-2-0692 | 1-2-0700 | 1-2-0704 | 1-2-0706 | 1-2-0739 | 1-2-0743 | 1-2-0744 | 1-2-0751 | 1-2-0773 | 1-2-0778 | 1-2-0783 | 1-2-0804 | 1-2-0826 | 1-2-0828 | 1-2-0834 | 1-2-0837 | 1-2-0840 | 1-2-0852 | 1-2-0853 | 1-2-0857 | 1-2-0863 | 1-2-0865 | 1-2-0872 | 1-2-0877 | 1-2-0908 | 1-2-0936 | 1-2-0938 | 1-2-0950 | 1-2-0954 | 1-2-0979 | 1-2-0992 | 1-2-0993 | 1-2-0998 | 1-2-1029 | 1-2-1041 | 1-2-1046 | 1-2-1059 | 1-2-1077 | 1-2-1098 | 1-2-1135 | 1-2-1154 | 1-2-1160 | 1-2-1168 | 1-2-1169 | 2-1-0002 | 2-1-0030 | 2-1-0071 | 2-1-0090 | 2-1-0099 | 2-1-0101 | 2-1-0129 | 2-1-0137 | 2-1-0168 | 2-1-0176 | 2-1-0183 | 2-1-0187 | 2-1-0195 | 2-1-0206 | 2-1-0222 | 2-1-0232 | 2-1-0266 | 2-1-0281 | 2-1-0303 | 2-1-0306 | 2-1-0307 | 2-1-0318 | 2-1-0334 | 2-1-0341 | 2-1-0343 | 2-1-0393 | 2-1-0405 | 2-1-0410 | 2-1-0414 | 2-1-0452 | 2-1-0486 | 2-1-0491 | 2-1-0494 | 2-1-0495 | 2-1-0513 | 2-1-0520 | 2-1-0536 | 2-1-0547 | 2-1-0552 | 2-1-0564 | 2-1-0567 | 2-1-0607 | 2-1-0611 | 2-1-0616 | 2-1-0619 | 2-1-0645 | 2-1-0654 | 2-1-0660 | 2-1-0691 | 2-1-0698 | 2-1-0709 | 2-1-0737 | 2-1-0741 | 2-1-0765 | 2-1-0772 | 2-1-0793 | 2-1-0800 | 2-1-0805 | 2-1-0821 | 2-1-0822 | 2-1-0838 | 2-1-0858 | 2-1-0871 | 2-1-0891 | 2-1-0905 | 2-1-0907 | 2-1-0915 | 2-1-0920 | 2-1-0931 | 2-1-0937 | 2-1-0942 | 2-1-0948 | 2-1-0953 | 2-1-0971 | 2-1-0981 | 2-1-0982 | 2-1-0985 | 2-1-1005 | 2-1-1054 | 2-1-1069 | 2-1-1074 | 2-1-1078 | 2-1-1079 | 2-1-1081 | 2-1-1088 | 2-1-1089 | 2-1-1091 | 2-1-1109 | 2-1-1118 | 2-1-1120 | 2-1-1151 | 2-1-1155 | 2-1-1156 | 2-1-1173 | 2-1-1184 | 2-1-1185 | 2-2-0003 | 2-2-0021 | 2-2-0026 | 2-2-0034 | 2-2-0035 | 2-2-0043 | 2-2-0049 | 2-2-0057 | 2-2-0070 | 2-2-0072 | 2-2-0073 | 2-2-0081 | 2-2-0106 | 2-2-0108 | 2-2-0110 | 2-2-0116 | 2-2-0120 | 2-2-0122 | 2-2-0130 | 2-2-0135 | 2-2-0143 | 2-2-0148 | 2-2-0152 | 2-2-0153 | 2-2-0156 | 2-2-0163 | 2-2-0167 | 2-2-0169 | 2-2-0170 | 2-2-0175 | 2-2-0179 | 2-2-0189 | 2-2-0190 | 2-2-0192 | 2-2-0214 | 2-2-0234 | 2-2-0239 | 2-2-0244 | 2-2-0246 | 2-2-0255 | 2-2-0256 | 2-2-0282 | 2-2-0283 | 2-2-0294 | 2-2-0299 | 2-2-0314 | 2-2-0327 | 2-2-0332 | 2-2-0363 | 2-2-0368 | 2-2-0369 | 2-2-0373 | 2-2-0377 | 2-2-0384 | 2-2-0395 | 2-2-0398 | 2-2-0402 | 2-2-0423 | 2-2-0437 | 2-2-0454 | 2-2-0469 | 2-2-0471 | 2-2-0474 | 2-2-0476 | 2-2-0478 | 2-2-0481 | 2-2-0487 | 2-2-0532 | 2-2-0554 | 2-2-0558 | 2-2-0560 | 2-2-0561 | 2-2-0579 | 2-2-0583 | 2-2-0586 | 2-2-0590 | 2-2-0599 | 2-2-0612 | 2-2-0620 | 2-2-0621 | 2-2-0628 | 2-2-0630 | 2-2-0642 | 2-2-0655 | 2-2-0658 | 2-2-0663 | 2-2-0677 | 2-2-0682 | 2-2-0686 | 2-2-0695 | 2-2-0697 | 2-2-0701 | 2-2-0705 | 2-2-0710 | 2-2-0722 | 2-2-0730 | 2-2-0745 | 2-2-0750 | 2-2-0770 | 2-2-0782 | 2-2-0791 | 2-2-0823 | 2-2-0827 | 2-2-0830 | 2-2-0831 | 2-2-0836 | 2-2-0842 | 2-2-0843 | 2-2-0847 | 2-2-0864 | 2-2-0909 | 2-2-0924 | 2-2-0930 | 2-2-0932 | 2-2-0933 | 2-2-0934 | 2-2-0939 | 2-2-0962 | 2-2-0967 | 2-2-0972 | 2-2-0980 | 2-2-0995 | 2-2-0997 | 2-2-1007 | 2-2-1014 | 2-2-1047 | 2-2-1055 | 2-2-1057 | 2-2-1063 | 2-2-1067 | 2-2-1082 | 2-2-1101 | 2-2-1105 | 2-2-1110 | 2-2-1122 | 2-2-1139 | 2-2-1142 | 2-2-1143 | 2-2-1162 | 2-2-1178 | 2-2-1179 | 2-2-1180 | 2-2-1181 | 3-3-0008 | 3-3-0017 | 3-3-0037 | 3-3-0068 | 3-3-0100 | 3-3-0125 | 3-3-0138 | 3-3-0142 | 3-3-0166 | 3-3-0199 | 3-3-0204 | 3-3-0211 | 3-3-0229 | 3-3-0249 | 3-3-0254 | 3-3-0262 | 3-3-0295 | 3-3-0321 | 3-3-0325 | 3-3-0342 | 3-3-0346 | 3-3-0366 | 3-3-0378 | 3-3-0406 | 3-3-0412 | 3-3-0419 | 3-3-0445 | 3-3-0477 | 3-3-0485 | 3-3-0508 | 3-3-0526 | 3-3-0528 | 3-3-0533 | 3-3-0553 | 3-3-0565 | 3-3-0576 | 3-3-0585 | 3-3-0587 | 3-3-0593 | 3-3-0605 | 3-3-0609 | 3-3-0651 | 3-3-0662 | 3-3-0676 | 3-3-0699 | 3-3-0702 | 3-3-0711 | 3-3-0718 | 3-3-0719 | 3-3-0729 | 3-3-0754 | 3-3-0756 | 3-3-0757 | 3-3-0768 | 3-3-0781 | 3-3-0785 | 3-3-0790 | 3-3-0811 | 3-3-0825 | 3-3-0835 | 3-3-0875 | 3-3-0876 | 3-3-0878 | 3-3-0887 | 3-3-0890 | 3-3-0914 | 3-3-0921 | 3-3-0926 | 3-3-0947 | 3-3-0955 | 3-3-0956 | 3-3-0958 | 3-3-0961 | 3-3-0974 | 3-3-0987 | 3-3-1030 | 3-3-1049 | 3-3-1058 | 3-3-1084 | 3-3-1137 | 3-3-1145 | 3-3-1174 | 3-3-1175 | 3-3-1176 | 3-3-1177 | 3-4-0006 | 3-4-0009 | 3-4-0010 | 3-4-0015 | 3-4-0016 | 3-4-0018 | 3-4-0038 | 3-4-0039 | 3-4-0042 | 3-4-0044 | 3-4-0046 | 3-4-0048 | 3-4-0051 | 3-4-0053 | 3-4-0058 | 3-4-0059 | 3-4-0062 | 3-4-0063 | 3-4-0064 | 3-4-0066 | 3-4-0067 | 3-4-0075 | 3-4-0080 | 3-4-0082 | 3-4-0094 | 3-4-0104 | 3-4-0105 | 3-4-0109 | 3-4-0113 | 3-4-0117 | 3-4-0119 | 3-4-0127 | 3-4-0133 | 3-4-0136 | 3-4-0145 | 3-4-0149 | 3-4-0150 | 3-4-0171 | 3-4-0172 | 3-4-0178 | 3-4-0191 | 3-4-0193 | 3-4-0196 | 3-4-0210 | 3-4-0212 | 3-4-0213 | 3-4-0216 | 3-4-0218 | 3-4-0221 | 3-4-0237 | 3-4-0240 | 3-4-0241 | 3-4-0242 | 3-4-0243 | 3-4-0245 | 3-4-0250 | 3-4-0253 | 3-4-0259 | 3-4-0267 | 3-4-0279 | 3-4-0280 | 3-4-0291 | 3-4-0297 | 3-4-0298 | 3-4-0300 | 3-4-0313 | 3-4-0315 | 3-4-0316 | 3-4-0335 | 3-4-0337 | 3-4-0371 | 3-4-0380 | 3-4-0382 | 3-4-0386 | 3-4-0400 | 3-4-0407 | 3-4-0420 | 3-4-0429 | 3-4-0436 | 3-4-0455 | 3-4-0456 | 3-4-0457 | 3-4-0459 | 3-4-0460 | 3-4-0461 | 3-4-0464 | 3-4-0475 | 3-4-0480 | 3-4-0484 | 3-4-0498 | 3-4-0501 | 3-4-0516 | 3-4-0525 | 3-4-0534 | 3-4-0538 | 3-4-0540 | 3-4-0541 | 3-4-0542 | 3-4-0543 | 3-4-0549 | 3-4-0555 | 3-4-0559 | 3-4-0562 | 3-4-0577 | 3-4-0578 | 3-4-0591 | 3-4-0592 | 3-4-0608 | 3-4-0627 | 3-4-0629 | 3-4-0634 | 3-4-0636 | 3-4-0638 | 3-4-0641 | 3-4-0643 | 3-4-0644 | 3-4-0646 | 3-4-0649 | 3-4-0650 | 3-4-0656 | 3-4-0659 | 3-4-0667 | 3-4-0672 | 3-4-0673 | 3-4-0674 | 3-4-0675 | 3-4-0680 | 3-4-0683 | 3-4-0684 | 3-4-0689 | 3-4-0703 | 3-4-0707 | 3-4-0712 | 3-4-0716 | 3-4-0723 | 3-4-0726 | 3-4-0733 | 3-4-0736 | 3-4-0742 | 3-4-0746 | 3-4-0748 | 3-4-0758 | 3-4-0760 | 3-4-0761 | 3-4-0762 | 3-4-0763 | 3-4-0767 | 3-4-0769 | 3-4-0777 | 3-4-0780 | 3-4-0803 | 3-4-0814 | 3-4-0816 | 3-4-0850 | 3-4-0851 | 3-4-0866 | 3-4-0888 | 3-4-0889 | 3-4-0892 | 3-4-0901 | 3-4-0912 | 3-4-0919 | 3-4-0922 | 3-4-0925 | 3-4-0927 | 3-4-0946 | 3-4-0957 | 3-4-0964 | 3-4-0965 | 3-4-0968 | 3-4-0975 | 3-4-0976 | 3-4-0977 | 3-4-0984 | 3-4-0986 | 3-4-0990 | 3-4-0999 | 3-4-1009 | 3-4-1018 | 3-4-1033 | 3-4-1037 | 3-4-1044 | 3-4-1050 | 3-4-1051 | 3-4-1053 | 3-4-1056 | 3-4-1060 | 3-4-1071 | 3-4-1080 | 3-4-1092 | 3-4-1094 | 3-4-1099 | 3-4-1102 | 3-4-1111 | 3-4-1115 | 3-4-1117 | 3-4-1119 | 3-4-1121 | 3-4-1127 | 3-4-1130 | 3-4-1138 | 3-4-1140 | 3-4-1147 | 3-4-1157 | 3-4-1158 | 3-4-1161 | 3-4-1165 | 3-4-1170 | 3-4-1171 | 3-4-1172 | 3-4-1182 | 3-4-1183 | 4-3-0007 | 4-3-0047 | 4-3-0054 | 4-3-0065 | 4-3-0088 | 4-3-0089 | 4-3-0098 | 4-3-0111 | 4-3-0154 | 4-3-0203 | 4-3-0209 | 4-3-0223 | 4-3-0236 | 4-3-0238 | 4-3-0247 | 4-3-0270 | 4-3-0274 | 4-3-0353 | 4-3-0354 | 4-3-0370 | 4-3-0388 | 4-3-0427 | 4-3-0449 | 4-3-0463 | 4-3-0551 | 4-3-0570 | 4-3-0584 | 4-3-0602 | 4-3-0653 | 4-3-0664 | 4-3-0669 | 4-3-0687 | 4-3-0694 | 4-3-0724 | 4-3-0747 | 4-3-0749 | 4-3-0845 | 4-3-0867 | 4-3-0883 | 4-3-1011 | 4-3-1021 | 4-3-1023 | 4-3-1042 | 4-3-1114 | 4-3-1124 | 4-3-1132 | 4-3-1133 | 4-3-1152 | 4-3-1153 | 4-3-1159 | 4-4-0014 | 4-4-0023 | 4-4-0024 | 4-4-0025 | 4-4-0027 | 4-4-0028 | 4-4-0031 | 4-4-0033 | 4-4-0061 | 4-4-0074 | 4-4-0091 | 4-4-0093 | 4-4-0097 | 4-4-0102 | 4-4-0112 | 4-4-0128 | 4-4-0132 | 4-4-0134 | 4-4-0140 | 4-4-0141 | 4-4-0151 | 4-4-0160 | 4-4-0184 | 4-4-0201 | 4-4-0226 | 4-4-0227 | 4-4-0258 | 4-4-0268 | 4-4-0277 | 4-4-0293 | 4-4-0302 | 4-4-0305 | 4-4-0323 | 4-4-0329 | 4-4-0339 | 4-4-0347 | 4-4-0358 | 4-4-0362 | 4-4-0381 | 4-4-0397 | 4-4-0431 | 4-4-0433 | 4-4-0434 | 4-4-0435 | 4-4-0438 | 4-4-0451 | 4-4-0465 | 4-4-0472 | 4-4-0473 | 4-4-0482 | 4-4-0483 | 4-4-0488 | 4-4-0490 | 4-4-0493 | 4-4-0499 | 4-4-0523 | 4-4-0569 | 4-4-0573 | 4-4-0588 | 4-4-0624 | 4-4-0635 | 4-4-0637 | 4-4-0640 | 4-4-0648 | 4-4-0666 | 4-4-0668 | 4-4-0670 | 4-4-0696 | 4-4-0708 | 4-4-0720 | 4-4-0728 | 4-4-0731 | 4-4-0734 | 4-4-0755 | 4-4-0766 | 4-4-0775 | 4-4-0776 | 4-4-0789 | 4-4-0798 | 4-4-0810 | 4-4-0817 | 4-4-0819 | 4-4-0854 | 4-4-0862 | 4-4-0886 | 4-4-0896 | 4-4-0899 | 4-4-0916 | 4-4-0929 | 4-4-0935 | 4-4-0945 | 4-4-0996 | 4-4-1006 | 4-4-1024 | 4-4-1034 | 4-4-1040 | 4-4-1066 | 4-4-1095 | 4-4-1106 | 4-4-1107 | 4-4-1125 | 4-4-1131 | 4-4-1141 | 5-1-0076 | 5-1-0107 | 5-1-0161 | 5-1-0177 | 5-1-0311 | 5-1-0391 | 5-1-0417 | 5-1-0441 | 5-1-0443 | 5-1-0489 | 5-1-0512 | 5-1-0633 | 5-1-0740 | 5-1-0753 | 5-1-0788 | 5-1-0844 | 5-1-0848 | 5-1-0861 | 5-1-0898 | 5-1-0913 | 5-1-0943 | 5-1-0973 | 5-1-1020 | 5-1-1025 | 5-1-1038 | 5-1-1061 | 5-1-1103 | 5-5-0001 | 5-5-0078 | 5-5-0086 | 5-5-0121 | 5-5-0164 | 5-5-0165 | 5-5-0207 | 5-5-0233 | 5-5-0235 | 5-5-0252 | 5-5-0273 | 5-5-0276 | 5-5-0284 | 5-5-0286 | 5-5-0287 | 5-5-0324 | 5-5-0340 | 5-5-0349 | 5-5-0356 | 5-5-0385 | 5-5-0403 | 5-5-0418 | 5-5-0422 | 5-5-0444 | 5-5-0458 | 5-5-0466 | 5-5-0470 | 5-5-0496 | 5-5-0500 | 5-5-0502 | 5-5-0503 | 5-5-0504 | 5-5-0511 | 5-5-0514 | 5-5-0529 | 5-5-0539 | 5-5-0548 | 5-5-0556 | 5-5-0566 | 5-5-0601 | 5-5-0603 | 5-5-0615 | 5-5-0625 | 5-5-0626 | 5-5-0632 | 5-5-0693 | 5-5-0713 | 5-5-0764 | 5-5-0771 | 5-5-0779 | 5-5-0786 | 5-5-0796 | 5-5-0808 | 5-5-0813 | 5-5-0824 | 5-5-0832 | 5-5-0839 | 5-5-0841 | 5-5-0855 | 5-5-0859 | 5-5-0874 | 5-5-0882 | 5-5-0884 | 5-5-0885 | 5-5-0903 | 5-5-0904 | 5-5-0911 | 5-5-0918 | 5-5-0928 | 5-5-0949 | 5-5-0951 | 5-5-0952 | 5-5-0963 | 5-5-0970 | 5-5-0978 | 5-5-0983 | 5-5-0989 | 5-5-0994 | 5-5-1000 | 5-5-1001 | 5-5-1004 | 5-5-1013 | 5-5-1019 | 5-5-1026 | 5-5-1031 | 5-5-1043 | 5-5-1052 | 5-5-1062 | 5-5-1068 | 5-5-1070 | 5-5-1072 | 5-5-1075 | 5-5-1085 | 5-5-1087 | 5-5-1090 | 5-5-1096 | 5-5-1113 | 5-5-1129 | 5-5-1136 | 5-5-1148 | 5-5-1164 | 5-5-1167 | 6-1-0029 | 6-1-0079 | 6-1-0095 | 6-1-0147 | 6-1-0162 | 6-1-0180 | 6-1-0208 | 6-1-0263 | 6-1-0269 | 6-1-0289 | 6-1-0310 | 6-1-0312 | 6-1-0317 | 6-1-0328 | 6-1-0360 | 6-1-0392 | 6-1-0396 | 6-1-0440 | 6-1-0462 | 6-1-0467 | 6-1-0519 | 6-1-0531 | 6-1-0568 | 6-1-0598 | 6-1-0622 | 6-1-0623 | 6-1-0735 | 6-1-0784 | 6-1-0787 | 6-1-0795 | 6-1-0806 | 6-1-0829 | 6-1-0869 | 6-1-0895 | 6-1-0897 | 6-1-1003 | 6-1-1008 | 6-1-1032 | 6-1-1039 | 6-1-1128 | 6-1-1144 | 6-1-1146 | 6-5-0052 | 6-5-0083 | 6-5-0131 | 6-5-0155 | 6-5-0157 | 6-5-0205 | 6-5-0248 | 6-5-0265 | 6-5-0271 | 6-5-0308 | 6-5-0322 | 6-5-0331 | 6-5-0336 | 6-5-0348 | 6-5-0359 | 6-5-0375 | 6-5-0389 | 6-5-0394 | 6-5-0446 | 6-5-0468 | 6-5-0557 | 6-5-0563 | 6-5-0582 | 6-5-0594 | 6-5-0596 | 6-5-0600 | 6-5-0604 | 6-5-0647 | 6-5-0665 | 6-5-0671 | 6-5-0690 | 6-5-0715 | 6-5-0717 | 6-5-0732 | 6-5-0799 | 6-5-0815 | 6-5-0818 | 6-5-0849 | 6-5-0873 | 6-5-0894 | 6-5-0923 | 6-5-0944 | 6-5-0959 | 6-5-1036 | 6-5-1076 | 6-5-1104 | 6-5-1123 | 6-5-1149 | 6-5-1150 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 |
|---|---|---|---|---|---|---|---|---|---|
| intervention | factor | FALSE | 81 | 1084 | 1165 | 2 | 1: 581, 0: 503, NA: 81 | 0 | 1 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}## 59 unique, categorical values, so not shown.
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 | V17 | V18 | V19 | V20 | V21 | V22 | V23 | V24 | V25 | V26 | V27 | V28 | V29 | V30 | V31 | V32 | V33 | V34 | V35 | V36 | V37 | V38 | V39 | V40 | V41 | V42 | V43 | V44 | V45 | V46 | V47 | V48 | V49 | V50 | V51 | V52 | V53 | V54 | V55 | V56 | V57 | V58 | V59 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| group | factor | FALSE | 81 | 1084 | 1165 | 59 | NA: 81, LHS: 27, LHS: 26, LHS: 26 | 14KP2A | 14KP2B | 14KP2C | 14KP2D | 14RYP2 | 14TP2 | 15PTA | 15PTE | 15RYP | DATP13SAG | DATP13SBG | DATP14SAG | DATP14SBG | DATP14SCG | DB14S1B | DP14L2A | DP14S1A | DP14S1B | DP14S2A | DP14S3A | HVIP14SAC | LHK15AV | LHK15CR | LHK15PK | LHS14CR | LHS14DR | LHS14KT | LHS14PKC | LHS15AR | LHS15AV | LHS15BR | LHS15BV | LHS15CR | LHS15CV | LHS15DR | LHS15DV | LHS15EV | LHS15KT | LHS15PKB | LHS15PKC | LKH15AV | MERP13SAG | MERP13SCG | MERP13SDG | MERP14SAG | MERP14SBG | MERP14SCG | MERP14SDG | MERP14SEG | MP14SA | MP14SB | MP14SD | MP14SE | MP14SF | MP14SG | MP14SH | RKOP14SBC | RKOP14SCC | RKOP15SBC |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 | V3 | V4 | V5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| school | factor | FALSE | 81 | 1084 | 1165 | 5 | 1: 293, 4: 288, 2: 223, 5: 148 | 1 | 2 | 3 | 4 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 |
|---|---|---|---|---|---|---|---|---|---|
| girl | factor | FALSE | 81 | 1084 | 1165 | 2 | gir: 613, boy: 471, NA: 81 | girl | boy |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 | V3 | V4 | V5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| track | factor | FALSE | 81 | 1084 | 1165 | 5 | Nur: 402, BA: 282, HRC: 213, IT: 163 | Other | IT | BA | HRC | Nur |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0155.1: … sympaattinen ja ystävällinen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5agreeableness_01_T1 | Kys0155.1: … sympaattinen ja ystävällinen | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 104 | 1061 | 1165 | 7 | 7: 315, 6: 292, 5: 204, 4: 166 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0150.1: … arvostelen asioita tai ihmisiä usein ja joudun helposti riitoihin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5agrReverseCoded_02_T1 | Kys0150.1: … arvostelen asioita tai ihmisiä usein ja joudun helposti riitoihin | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 101 | 1064 | 1165 | 7 | 7: 321, 6: 229, 4: 204, 5: 133 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0151.1: … luotettava ja saan tehtyä ne asiat, jotka lupaan tehdä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)106 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5conscientiousness_01_T1 | Kys0151.1: … luotettava ja saan tehtyä ne asiat, jotka lupaan tehdä | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 106 | 1059 | 1165 | 7 | 6: 314, 7: 273, 5: 204, 4: 161 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0156.1: … huolimaton ja minun on vaikeaa järjestellä asioita
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)100 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5consReverseCoded_02_T1 | Kys0156.1: … huolimaton ja minun on vaikeaa järjestellä asioita | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 100 | 1065 | 1165 | 7 | 4: 244, 6: 211, 7: 208, 3: 128 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0149.1: … ulospäin suuntautunut, innostunut asioista
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5extraversion_01_T1 | Kys0149.1: … ulospäin suuntautunut, innostunut asioista | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 7: 245, 6: 221, 4: 218, 5: 184 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0154.1: … varautunut (varovainen uusien ihmisten seurassa) ja hiljainen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5extReverseCoded_02_T1 | Kys0154.1: … varautunut (varovainen uusien ihmisten seurassa) ja hiljainen | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 103 | 1062 | 1165 | 7 | 4: 229, 3: 159, 6: 148, 7: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0152.1: … välillä ahdistunut ja hermostun helposti
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5neuroticism_01_T1 | Kys0152.1: … välillä ahdistunut ja hermostun helposti | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 101 | 1064 | 1165 | 7 | 4: 222, 2: 167, 5: 166, 7: 151 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0157.1: … tyyni ja tasapainoinen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5neurReverseCoded_02_T1 | Kys0157.1: … tyyni ja tasapainoinen | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 104 | 1061 | 1165 | 7 | 4: 321, 3: 198, 2: 151, 1: 139 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0153.1: … avoin uusille kokemuksille (pidän uusien asioiden tekemisestä)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5openness_01_T1 | Kys0153.1: … avoin uusille kokemuksille (pidän uusien asioiden tekemisestä) | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 103 | 1062 | 1165 | 7 | 7: 309, 6: 241, 5: 203, 4: 179 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0158.1: … tavallinen, en kovin luova
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5openReverseCoded_02_T1 | Kys0158.1: … tavallinen, en kovin luova | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 99 | 1066 | 1165 | 7 | 4: 305, 5: 165, 6: 158, 7: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Rasva %
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)203 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fatpct_T1 | Rasva % | numeric | 203 | 962 | 1165 | 25.27 | 8.98 | 5.7 | 18.2 | 24.45 | 31.28 | 60.5 | <U+ | 2586>< | U+2586> F5.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0115.1: … milloin liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_01_T1 | Kys0115.1: … milloin liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 400, 2: 246, 4: 223, 1: 204 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0116.1: … missä liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_02_T1 | Kys0116.1: … missä liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 409, 4: 314, 2: 177, 1: 173 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0117.1: … kuinka liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_03_T1 | Kys0117.1: … kuinka liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 459, 4: 305, 2: 155, 1: 154 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0118.1: … kuinka usein liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_04_T1 | Kys0118.1: … kuinka usein liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 446, 4: 274, 2: 194, 1: 159 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0128.1: Olen asettanut itselleni liikuntatavoitteita.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_01_T1 | Kys0128.1: Olen asettanut itselleni liikuntatavoitteita. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 6: 288, 1: 242, 4: 159, 5: 142 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0129.1: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_02_T1 | Kys0129.1: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 317, 6: 176, 4: 153, 3: 150 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0130.1: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_03_T1 | Kys0130.1: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 572, 6: 137, 3: 119, 4: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0131.1: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_04_T1 | Kys0131.1: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 498, 2: 132, 3: 129, 4: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0132.1: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_05_T1 | Kys0132.1: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 421, 3: 192, 4: 151, 2: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0133.1: Olen kokeillut minulle uusia tapoja liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_06_T1 | Kys0133.1: Olen kokeillut minulle uusia tapoja liikkua. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 296, 4: 188, 3: 168, 6: 155 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0134.1: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_07_T1 | Kys0134.1: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 299, 3: 214, 4: 175, 2: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0135.1: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_08_T1 | Kys0135.1: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 285, 3: 204, 4: 178, 5: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0136.1: Olen miettinyt, miten liikunta sopii omaan minäkuvaani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_09_T1 | Kys0136.1: Olen miettinyt, miten liikunta sopii omaan minäkuvaani. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 5: 211, 1: 200, 4: 198, 6: 195 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0137.1: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_10_T1 | Kys0137.1: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 94 | 1071 | 1165 | 6 | 1: 212, 6: 211, 4: 192, 5: 180 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0082.1: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_01_T1 | Kys0082.1: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 103 | 1062 | 1165 | 5 | 1: 767, 2: 127, 3: 111, NA: 103 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0086.1: En näe mitään syytä liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)108 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_02_T1 | Kys0086.1: En näe mitään syytä liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 108 | 1057 | 1165 | 5 | 1: 756, 2: 131, 3: 108, NA: 108 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0096.1: En näe, mitä järkeä on liikkua vapaa-ajalla.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)98 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_03_T1 | Kys0096.1: En näe, mitä järkeä on liikkua vapaa-ajalla. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 98 | 1067 | 1165 | 5 | 1: 731, 2: 145, 3: 107, NA: 98 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0097.1: Mielestäni liikkuminen on ajanhukkaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_04_T1 | Kys0097.1: Mielestäni liikkuminen on ajanhukkaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 1: 802, 2: 111, NA: 99, 3: 93 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0119.1: … mitä tehdä silloin, kun jokin sotkee suunnitelmani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_01_T1 | Kys0119.1: … mitä tehdä silloin, kun jokin sotkee suunnitelmani | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 375, 2: 316, 1: 234, 4: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0120.1: … kuinka selviytyä repsahduksista
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_02_T1 | Kys0120.1: … kuinka selviytyä repsahduksista | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 367, 2: 314, 1: 230, 4: 162 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0121.1: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_03_T1 | Kys0121.1: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 411, 2: 289, 1: 220, 4: 153 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0122.1: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_04_T1 | Kys0122.1: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 92 | 1073 | 1165 | 4 | 3: 447, 4: 233, 2: 224, 1: 169 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0107.1: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_02_T1 | Kys0107.1: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 92 | 1073 | 1165 | 7 | 7: 253, 4: 199, 2: 150, 5: 144 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0106.1: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_01_T1 | Kys0106.1: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 92 | 1073 | 1165 | 7 | 7: 238, 4: 218, 5: 168, 3: 160 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.1: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)97 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_01_T1 | Kys0080.1: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 97 | 1068 | 1165 | 5 | 1: 682, 2: 164, 3: 158, NA: 97 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.1: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)96 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_02_T1 | Kys0081.1: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 96 | 1069 | 1165 | 5 | 1: 784, 2: 129, 3: 109, NA: 96 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.1: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_03_T1 | Kys0083.1: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 101 | 1064 | 1165 | 5 | 1: 740, 2: 145, 3: 122, NA: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0138.1: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_01_T1 | Kys0138.1: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 4: 285, 6: 189, 3: 185, 5: 162 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0139.1: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_02_T1 | Kys0139.1: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 718, 3: 102, NA: 95, 2: 83 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0140.1: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_03_T1 | Kys0140.1: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 669, 3: 118, NA: 95, 4: 86 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0141.1: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_04_T1 | Kys0141.1: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 696, 3: 109, NA: 95, 2: 90 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0142.1: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_05_T1 | Kys0142.1: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 494, 4: 152, 3: 147, 2: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0143.1: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_06_T1 | Kys0143.1: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 233, 4: 215, 3: 193, 6: 181 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0144.1: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_07_T1 | Kys0144.1: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 591, 2: 123, 4: 114, 3: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0145.1: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_08_T1 | Kys0145.1: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 95 | 1070 | 1165 | 6 | 1: 512, 3: 142, 2: 139, 4: 123 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0146.1: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_09_T1 | Kys0146.1: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6,Saavutin tavoitteeni6=7 | 95 | 1070 | 1165 | 7 | 1: 393, 4: 177, 2: 163, 3: 149 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.1: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_01_T1 | Kys0147.1: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 104 | 1061 | 1165 | 2 | 1: 592, 0: 469, NA: 104 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.1: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_01_T1 | Kys0087.1: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 102 | 1063 | 1165 | 5 | 3: 298, 4: 240, 5: 196, 1: 178 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.1: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_02_T1 | Kys0088.1: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 102 | 1063 | 1165 | 5 | 5: 391, 4: 275, 3: 225, NA: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.1: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_03_T1 | Kys0090.1: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 3: 283, 5: 280, 4: 224, 2: 175 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.1: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_01_T1 | Kys0108.1: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 92 | 1073 | 1165 | 7 | 7: 306, 4: 219, 6: 136, 3: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.1: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_04_T1 | Kys0089.1: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 3: 338, 5: 260, 4: 196, 2: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.1: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_05_T1 | Kys0092.1: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 103 | 1062 | 1165 | 5 | 3: 311, 5: 239, 4: 221, 2: 161 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.1: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_06_T1 | Kys0094.1: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 3: 256, 5: 224, 4: 206, 2: 201 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0113.1: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_01_T1 | Kys0113.1: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 92 | 1073 | 1165 | 7 | 7: 511, 4: 130, 6: 111, 5: 108 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0114.1: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_02_T1 | Kys0114.1: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 92 | 1073 | 1165 | 7 | 7: 498, 4: 165, 6: 115, 5: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.1: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_07_T1 | Kys0091.1: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 5: 372, 4: 278, 3: 240, 2: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.1: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_08_T1 | Kys0093.1: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 5: 323, 4: 294, 3: 258, 2: 115 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.1: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)108 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_09_T1 | Kys0095.1: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 108 | 1057 | 1165 | 5 | 5: 295, 3: 264, 4: 264, 2: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.1: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)97 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_04_T1 | Kys0084.1: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 97 | 1068 | 1165 | 5 | 1: 518, 3: 219, 2: 134, 4: 108 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.1: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_05_T1 | Kys0085.1: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 1: 457, 3: 212, 2: 161, 4: 135 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0068.1: Se saisi minut hyvälle tuulelle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_01_T1 | Kys0068.1: Se saisi minut hyvälle tuulelle | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 94 | 1071 | 1165 | 7 | 7: 377, 6: 211, 5: 207, 4: 153 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0070.1: Se auttaisi pitämään painoni kurissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_03_T1 | Kys0070.1: Se auttaisi pitämään painoni kurissa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 101 | 1064 | 1165 | 7 | 7: 367, 4: 226, 6: 162, 5: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0071.1: Se auttaisi kasvattamaan lihasmassaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_04_T1 | Kys0071.1: Se auttaisi kasvattamaan lihasmassaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 94 | 1071 | 1165 | 7 | 7: 365, 6: 227, 5: 208, 4: 157 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0072.1: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)98 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_05_T1 | Kys0072.1: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 98 | 1067 | 1165 | 7 | 7: 276, 5: 245, 4: 207, 6: 200 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0073.1: Se auttaisi minua jaksamaan
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_06_T1 | Kys0073.1: Se auttaisi minua jaksamaan | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 94 | 1071 | 1165 | 7 | 7: 323, 5: 233, 6: 231, 4: 175 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0074.1: Saisin sen avulla uusia kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_07_T1 | Kys0074.1: Saisin sen avulla uusia kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 103 | 1062 | 1165 | 7 | 4: 276, 7: 225, 5: 219, 6: 176 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0077.1: Se auttaisi minua nukkumaan paremmin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)96 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_10_T1 | Kys0077.1: Se auttaisi minua nukkumaan paremmin | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 96 | 1069 | 1165 | 7 | 7: 350, 6: 236, 4: 179, 5: 164 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0078.1: Saisin sen avulla onnistumisen kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_11_T1 | Kys0078.1: Saisin sen avulla onnistumisen kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 7: 293, 4: 228, 6: 206, 5: 179 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0079.1: Se tukisi itsetuntoani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_12_T1 | Kys0079.1: Se tukisi itsetuntoani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 95 | 1070 | 1165 | 7 | 7: 333, 4: 234, 6: 191, 5: 158 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0069.1: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_02_T1 | Kys0069.1: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 99 | 1066 | 1165 | 7 | 1: 296, 4: 225, 2: 223, 3: 149 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0075.1: Se olisi stressaavaa ja henkisesti rasittavaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_08_T1 | Kys0075.1: Se olisi stressaavaa ja henkisesti rasittavaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 1: 380, 2: 259, 4: 176, 3: 119 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0076.1: Se olisi ikävällä tavalla fyysisesti väsyttävää
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_09_T1 | Kys0076.1: Se olisi ikävällä tavalla fyysisesti väsyttävää | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 101 | 1064 | 1165 | 7 | 1: 372, 2: 249, 4: 199, 3: 116 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0098.1: Minulla on riittävästi rahaa liikunnan harrastamiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_01_T1 | Kys0098.1: Minulla on riittävästi rahaa liikunnan harrastamiseen | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 95 | 1070 | 1165 | 7 | 7: 307, 4: 203, 5: 146, 6: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0099.1: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)98 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_02_T1 | Kys0099.1: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 98 | 1067 | 1165 | 7 | 7: 400, 6: 236, 5: 164, 4: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0101.1: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_04_T1 | Kys0101.1: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 95 | 1070 | 1165 | 7 | 7: 437, 6: 207, 5: 151, 4: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0102.1: Liikuntavälineiden puute ei ole este liikkumiselleni
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_05_T1 | Kys0102.1: Liikuntavälineiden puute ei ole este liikkumiselleni | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 101 | 1064 | 1165 | 7 | 7: 434, 4: 177, 6: 161, 5: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0104.1: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)97 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_07_T1 | Kys0104.1: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 97 | 1068 | 1165 | 7 | 4: 228, 7: 219, 5: 185, 6: 160 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0100.1: Minulla ei ole tarvitsemiani liikuntavälineitä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)100 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_03_T1 | Kys0100.1: Minulla ei ole tarvitsemiani liikuntavälineitä | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 100 | 1065 | 1165 | 7 | 7: 375, 4: 206, 6: 184, NA: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0103.1: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)106 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_06_T1 | Kys0103.1: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 106 | 1059 | 1165 | 7 | 4: 248, 1: 180, 2: 161, 3: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0105.1: Uskontoni tai perheeni uskonto rajoittaa liikkumistani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_08_T1 | Kys0105.1: Uskontoni tai perheeni uskonto rajoittaa liikkumistani | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 99 | 1066 | 1165 | 7 | 7: 918, NA: 99, 4: 65, 6: 28 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0125.1: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)96 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_01_T1 | Kys0125.1: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 96 | 1069 | 1165 | 7 | 7: 532, 6: 192, 5: 152, 4: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0127.1: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_03_T1 | Kys0127.1: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 99 | 1066 | 1165 | 7 | 7: 346, 4: 191, 6: 179, 5: 173 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0126.1: Liikkuminen säännöllisesti ei riipu täysin minusta.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbcReverseCoded_02_T1 | Kys0126.1: Liikkuminen säännöllisesti ei riipu täysin minusta. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 102 | 1063 | 1165 | 7 | 7: 355, 6: 170, 4: 157, 5: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0123.1: Jos haluaisin, voisin liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_01_T1 | Kys0123.1: Jos haluaisin, voisin liikkua säännöllisesti. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,4=4,5=5,6=6,Täysin samaa mieltä7=7 | 94 | 1071 | 1165 | 7 | 7: 570, 5: 151, 6: 137, 4: 121 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0124.1: Liikkuminen säännöllisesti on minulle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacyReverseCoded_02_T1 | Kys0124.1: Liikkuminen säännöllisesti on minulle | labelled | FALSE | Helppoa1=1,2=2,3=3,4=4,5=5,6=6,Vaikeaa7=7 | 94 | 1071 | 1165 | 7 | 7: 260, 4: 202, 5: 158, 3: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T1)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)452 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| paAccelerometer_T1 | Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T1) | numeric | 452 | 713 | 1165 | 183.76 | 53.84 | 61.52 | 145.34 | 180.93 | 217.74 | 367.21 | <U+ | 2585>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| padaysLastweek_T1 | labelled | FALSE | 0 (en yhtenäkään)=0,1=1,2=2,3=3,4=4,5=5,6=6,7=7 | 83 | 1082 | 1165 | 8 | 3: 233, 2: 202, 0: 158, 4: 151 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pafreqUsually_T1 | labelled | FALSE | En voi vamman tai sairauden takia harrastaa liikuntaa=0,Harvemmin kuin kerran viikossa=1,1-2 kertaa viikossa=2,3 kertaa viikossa=3,4 kertaa viikossa=4,5 kertaa viikossa tai useammin=5 | 83 | 1082 | 1165 | 6 | 2: 326, 1: 258, 3: 197, 4: 145 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0046.1: Yhteensä - Tuntia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| pahrsLastweek_T1 | Kys0046.1: Yhteensä - Tuntia: | labelled | FALSE | 0=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,8=9,9=10,10=11,11=12,12=13,13=14,14=15,15=16,16=17,17=18,18=19,19=20,20=21,21=22,22=23,23=24,24=25,25=26,26=27,27=28,28=29,29=30,30=31,31=32,32=33,33=34,34=35,35=36,36=37,37=38,38=39,39=40,40=41,41=42,42=43,43=44,44=45,45=46,46=47,47=48,48=49,49=50,50=51,51=52,52=53,53=54,54=55,55=56,56=57,57=58,58=59,59=60,60=61 | 83 | 1082 | 1165 | 38 | 1: 188, 2: 175, 3: 145, 4: 121 | F2.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pahrsUsually_T1 | labelled | FALSE | En yhtään=0,Noin puoli tuntia=1,Noin 1 tunnin=2,Noin 1,5 tuntia=3,Noin 2-3 tuntia=4,Noin 4-6 tuntia=5,Noin 7 tuntia tai enemmän=6 | 83 | 1082 | 1165 | 7 | 4: 219, 5: 175, 1: 168, 2: 147 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0047.1: Yhteensä - Minuuttia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| paminLastweek_T1 | Kys0047.1: Yhteensä - Minuuttia: | labelled | FALSE | 0=1,30=2 | 83 | 1082 | 1165 | 2 | 1: 596, 2: 486, NA: 83 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0178.1: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)106 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_01_T1 | Kys0178.1: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 106 | 1059 | 1165 | 7 | 4: 472, 1: 283, 2: 117, NA: 106 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0179.1: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)105 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_02_T1 | Kys0179.1: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 105 | 1060 | 1165 | 7 | 4: 499, 1: 210, 2: 105, NA: 105 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0180.1: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)109 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_01_T1 | Kys0180.1: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 109 | 1056 | 1165 | 7 | 4: 568, 1: 127, NA: 109, 7: 92 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0181.1: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)112 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_02_T1 | Kys0181.1: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 112 | 1053 | 1165 | 7 | 4: 511, 5: 122, NA: 112, 7: 96 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0187.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)106 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_01_T1 | Kys0187.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 106 | 1059 | 1165 | 7 | 4: 276, 1: 257, 3: 144, 2: 132 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0188.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)109 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_02_T1 | Kys0188.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 109 | 1056 | 1165 | 7 | 4: 320, 1: 168, 3: 165, 2: 163 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0189.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)111 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_03_T1 | Kys0189.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 111 | 1054 | 1165 | 7 | 4: 253, 1: 164, 5: 150, 7: 149 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0190.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)110 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_04_T1 | Kys0190.1: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 110 | 1055 | 1165 | 7 | 4: 271, 5: 156, 3: 140, 7: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0171.1: … oloni olisi epämukava.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_01_T1 | Kys0171.1: … oloni olisi epämukava. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 4: 394, 1: 222, 2: 131, 3: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0172.1: … virkistyisin ja jaksaisin paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)109 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_02_T1 | Kys0172.1: … virkistyisin ja jaksaisin paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 109 | 1056 | 1165 | 7 | 4: 301, 5: 236, 7: 197, 6: 164 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0173.1: keskittymiskykyni paranisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)107 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_03_T1 | Kys0173.1: keskittymiskykyni paranisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 107 | 1058 | 1165 | 7 | 4: 326, 5: 209, 7: 183, 6: 145 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0174.1: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_04_T1 | Kys0174.1: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 4: 268, 7: 259, 6: 189, 5: 182 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0175.1: lihakseni eivät rappeutuisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)105 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_05_T1 | Kys0175.1: lihakseni eivät rappeutuisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 105 | 1060 | 1165 | 7 | 4: 278, 7: 238, 5: 199, 6: 186 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0176.1: aivoni toimisivat paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)107 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_06_T1 | Kys0176.1: aivoni toimisivat paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 107 | 1058 | 1165 | 7 | 4: 298, 7: 224, 5: 197, 6: 179 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0177.1: se häiritsisi asioiden tekemistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)108 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_07_T1 | Kys0177.1: se häiritsisi asioiden tekemistä. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 108 | 1057 | 1165 | 7 | 4: 331, 1: 225, 2: 158, 3: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0182.1: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_01_T1 | Kys0182.1: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 103 | 1062 | 1165 | 7 | 4: 326, 5: 192, 7: 159, 6: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0183.1: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_02_T1 | Kys0183.1: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 104 | 1061 | 1165 | 7 | 4: 353, 5: 172, 7: 156, NA: 104 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0184.1: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)105 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_03_T1 | Kys0184.1: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 105 | 1060 | 1165 | 7 | 7: 506, 4: 180, 6: 171, 5: 127 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0185.1: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)105 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_04_T1 | Kys0185.1: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 105 | 1060 | 1165 | 7 | 7: 504, 4: 192, 6: 171, 5: 121 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0186.1: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)111 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_05_T1 | Kys0186.1: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 111 | 1054 | 1165 | 7 | 4: 377, 7: 242, 5: 131, 6: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen makuun ja istumisen (SB) aika päivässä (T1)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)452 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sitLieAccelerometer_T1 | Keskimääräinen makuun ja istumisen (SB) aika päivässä (T1) | numeric | 452 | 713 | 1165 | 578.21 | 97.15 | 304.76 | 514.36 | 567.97 | 634.22 | 936.09 | <U+ | 2582>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0031.1: Niska- tai hartiakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)118 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_neckShoulderPain_T1 | Kys0031.1: Niska- tai hartiakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 118 | 1047 | 1165 | 4 | 1: 457, 2: 300, 3: 182, NA: 118 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0032.1: Selän alaosan kipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)112 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_lowerBackPain_T1 | Kys0032.1: Selän alaosan kipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 112 | 1053 | 1165 | 4 | 1: 527, 2: 321, 3: 141, NA: 112 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0033.1: Vatsakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)139 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_stomachAche_T1 | Kys0033.1: Vatsakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 139 | 1026 | 1165 | 4 | 1: 454, 2: 434, NA: 139, 3: 106 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0034.1: Jännittyneisyyttä tai hermostuneisuutta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)114 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tensionNervousness_T1 | Kys0034.1: Jännittyneisyyttä tai hermostuneisuutta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 114 | 1051 | 1165 | 4 | 1: 463, 2: 306, 3: 203, NA: 114 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0035.1: Ärtyneisyyttä tai kiukunpurkauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)126 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_irritabilityAngerbursts_T1 | Kys0035.1: Ärtyneisyyttä tai kiukunpurkauksia | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 126 | 1039 | 1165 | 4 | 1: 462, 2: 287, 3: 224, NA: 126 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0036.1: Vaikeuksia päästä uneen tai heräilemistä öisin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)113 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_sleepDifficulty_T1 | Kys0036.1: Vaikeuksia päästä uneen tai heräilemistä öisin | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 113 | 1052 | 1165 | 4 | 1: 438, 2: 243, 3: 219, 4: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0037.1: Päänsärkyä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)110 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_headAche_T1 | Kys0037.1: Päänsärkyä | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 110 | 1055 | 1165 | 4 | 1: 411, 2: 327, 3: 246, NA: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0038.1: Väsymystä tai heikotusta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)107 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tirednessFaintness_T1 | Kys0038.1: Väsymystä tai heikotusta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 107 | 1058 | 1165 | 4 | 1: 312, 2: 304, 3: 283, 4: 159 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräiset ylösnousut päivässä (T1)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)452 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sitBreaks_T1 | Keskimääräiset ylösnousut päivässä (T1) | numeric | 452 | 713 | 1165 | 28.16 | 11.08 | 7.14 | 19.83 | 26.8 | 35.33 | 65.86 | <U+ | 2586>< | U+2585> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0046.1: Yhteensä - Tuntia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)83 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| paLastweek_T1 | Kys0046.1: Yhteensä - Tuntia: | labelled | FALSE | 0=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,8=9,9=10,10=11,11=12,12=13,13=14,14=15,15=16,16=17,17=18,18=19,19=20,20=21,21=22,22=23,23=24,24=25,25=26,26=27,27=28,28=29,29=30,30=31,31=32,32=33,33=34,34=35,35=36,36=37,37=38,38=39,39=40,40=41,41=42,42=43,43=44,44=45,45=46,46=47,47=48,48=49,49=50,50=51,51=52,52=53,53=54,54=55,55=56,56=57,57=58,58=59,59=60,60=61 | 83 | 1082 | 1165 | 60 | 60: 126, 150: 89, 180: 88, 120: 86 | F2.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0155.1: … sympaattinen ja ystävällinen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5agreeableness_T1 | Kys0155.1: … sympaattinen ja ystävällinen | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 104 | 1061 | 1165 | 7 | 7: 315, 6: 292, 5: 204, 4: 166 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0151.1: … luotettava ja saan tehtyä ne asiat, jotka lupaan tehdä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)106 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5conscientiousness_T1 | Kys0151.1: … luotettava ja saan tehtyä ne asiat, jotka lupaan tehdä | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 106 | 1059 | 1165 | 7 | 6: 314, 7: 273, 5: 204, 4: 161 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0149.1: … ulospäin suuntautunut, innostunut asioista
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5extraversion_T1 | Kys0149.1: … ulospäin suuntautunut, innostunut asioista | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 102 | 1063 | 1165 | 7 | 7: 245, 6: 221, 4: 218, 5: 184 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0152.1: … välillä ahdistunut ja hermostun helposti
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5neuroticism_T1 | Kys0152.1: … välillä ahdistunut ja hermostun helposti | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 101 | 1064 | 1165 | 7 | 4: 222, 2: 167, 5: 166, 7: 151 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0153.1: … avoin uusille kokemuksille (pidän uusien asioiden tekemisestä)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| big5openness_T1 | Kys0153.1: … avoin uusille kokemuksille (pidän uusien asioiden tekemisestä) | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 103 | 1062 | 1165 | 7 | 7: 309, 6: 241, 5: 203, 4: 179 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_T1 | numeric | 94 | 1071 | 1165 | 3.11 | 1.33 | 1 | 2 | 3.1 | 4.05 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)93 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_T1 | numeric | 93 | 1072 | 1165 | 1.54 | 0.82 | 1 | 1 | 1 | 2 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)87 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_T1 | numeric | 87 | 1078 | 1165 | 3.41 | 1.05 | 1 | 2.69 | 3.44 | 4.22 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_T1 | numeric | 92 | 1073 | 1165 | 1.84 | 0.82 | 1 | 1 | 1.6 | 2.4 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_T1 | numeric | 92 | 1073 | 1165 | 4.4 | 1.58 | 1 | 3.5 | 4.5 | 5.5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_T1 | numeric | 95 | 1070 | 1165 | 2.53 | 1.15 | 1 | 1.56 | 2.33 | 3.22 | 6.11 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.1: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)104 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_T1 | Kys0147.1: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 104 | 1061 | 1165 | 2 | 1: 592, 0: 469, NA: 104 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.1: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_T1 | Kys0108.1: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 92 | 1073 | 1165 | 7 | 7: 306, 4: 219, 6: 136, 3: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_T1 | numeric | 92 | 1073 | 1165 | 5.38 | 1.85 | 1 | 4 | 6 | 7 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)87 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_T1 | numeric | 87 | 1078 | 1165 | 4.59 | 0.91 | 1 | 4 | 4.67 | 5.25 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)90 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_T1 | numeric | 90 | 1075 | 1165 | 5.12 | 0.93 | 1 | 4.5 | 5.12 | 5.75 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_T1 | numeric | 94 | 1071 | 1165 | 5.33 | 1.28 | 1 | 4.33 | 5.33 | 6.33 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_T1 | numeric | 94 | 1071 | 1165 | 5.22 | 1.3 | 1 | 4 | 5 | 6.5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_T1 | numeric | 103 | 1062 | 1165 | 3.23 | 1.45 | 1 | 2 | 4 | 4 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_T1 | numeric | 101 | 1064 | 1165 | 4 | 1.25 | 1 | 3.5 | 4 | 4.5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_T1 | numeric | 101 | 1064 | 1165 | 3.71 | 1.62 | 1 | 2.5 | 4 | 5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_T1 | numeric | 101 | 1064 | 1165 | 4.41 | 1.05 | 1 | 4 | 4.43 | 5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_T1 | numeric | 101 | 1064 | 1165 | 4.95 | 1.26 | 1 | 4 | 5 | 5.8 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)81 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_T1 | numeric | 81 | 1084 | 1165 | 1.95 | 0.67 | 1 | 1.38 | 1.88 | 2.38 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actionplan_T1 | numeric | 92 | 1073 | 1165 | 2.76 | 0.93 | 1 | 2.25 | 3 | 3.5 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copingplan_T1 | numeric | 92 | 1073 | 1165 | 2.5 | 0.87 | 1 | 2 | 2.75 | 3 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0115.3: … milloin liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_01_T3 | Kys0115.3: … milloin liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 243 | 922 | 1165 | 4 | 3: 364, NA: 243, 2: 198, 1: 182 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0116.3: … missä liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)245 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_02_T3 | Kys0116.3: … missä liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 245 | 920 | 1165 | 4 | 3: 374, NA: 245, 4: 241, 2: 153 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0117.3: … kuinka liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_03_T3 | Kys0117.3: … kuinka liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 248 | 917 | 1165 | 4 | 3: 396, NA: 248, 4: 232, 1: 146 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0118.3: … kuinka usein liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_04_T3 | Kys0118.3: … kuinka usein liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 244 | 921 | 1165 | 4 | 3: 382, NA: 244, 4: 215, 2: 176 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0128.3: Olen asettanut itselleni liikuntatavoitteita.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_01_T3 | Kys0128.3: Olen asettanut itselleni liikuntatavoitteita. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 237 | 928 | 1165 | 6 | NA: 237, 6: 216, 4: 187, 1: 163 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0129.3: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)240 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_02_T3 | Kys0129.3: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 240 | 925 | 1165 | 6 | NA: 240, 1: 233, 4: 165, 6: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0130.3: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_03_T3 | Kys0130.3: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 239 | 926 | 1165 | 6 | 1: 409, NA: 239, 6: 127, 3: 124 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0131.3: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_04_T3 | Kys0131.3: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 238 | 927 | 1165 | 6 | 1: 355, NA: 238, 4: 147, 3: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0132.3: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_05_T3 | Kys0132.3: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 239 | 926 | 1165 | 6 | 1: 305, NA: 239, 3: 171, 4: 159 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0133.3: Olen kokeillut minulle uusia tapoja liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_06_T3 | Kys0133.3: Olen kokeillut minulle uusia tapoja liikkua. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 248 | 917 | 1165 | 6 | NA: 248, 1: 223, 4: 192, 3: 151 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0134.3: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_07_T3 | Kys0134.3: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 248 | 917 | 1165 | 6 | NA: 248, 1: 223, 3: 184, 4: 176 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0135.3: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)242 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_08_T3 | Kys0135.3: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 242 | 923 | 1165 | 6 | NA: 242, 1: 230, 4: 197, 3: 177 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0136.3: Olen miettinyt, miten liikunta sopii omaan minäkuvaani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)240 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_09_T3 | Kys0136.3: Olen miettinyt, miten liikunta sopii omaan minäkuvaani. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 240 | 925 | 1165 | 6 | NA: 240, 4: 191, 1: 180, 6: 170 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0137.3: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_10_T3 | Kys0137.3: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 244 | 921 | 1165 | 6 | NA: 244, 4: 206, 1: 190, 3: 167 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0082.3: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_01_T3 | Kys0082.3: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 1: 644, NA: 244, 3: 117, 2: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0086.3: En näe mitään syytä liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)246 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_02_T3 | Kys0086.3: En näe mitään syytä liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 246 | 919 | 1165 | 5 | 1: 628, NA: 246, 2: 122, 3: 116 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0096.3: En näe, mitä järkeä on liikkua vapaa-ajalla.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)245 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_03_T3 | Kys0096.3: En näe, mitä järkeä on liikkua vapaa-ajalla. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 245 | 920 | 1165 | 5 | 1: 574, NA: 245, 3: 140, 2: 137 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0097.3: Mielestäni liikkuminen on ajanhukkaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_04_T3 | Kys0097.3: Mielestäni liikkuminen on ajanhukkaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 236 | 929 | 1165 | 5 | 1: 638, NA: 236, 2: 121, 3: 107 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0119.3: … mitä tehdä silloin, kun jokin sotkee suunnitelmani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_01_T3 | Kys0119.3: … mitä tehdä silloin, kun jokin sotkee suunnitelmani | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 234 | 931 | 1165 | 4 | 3: 322, 2: 243, NA: 234, 1: 224 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0120.3: … kuinka selviytyä repsahduksista
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_02_T3 | Kys0120.3: … kuinka selviytyä repsahduksista | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 236 | 929 | 1165 | 4 | 3: 317, 2: 263, NA: 236, 1: 207 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0121.3: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_03_T3 | Kys0121.3: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 237 | 928 | 1165 | 4 | 3: 331, 2: 247, NA: 237, 1: 207 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0122.3: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_04_T3 | Kys0122.3: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 243 | 922 | 1165 | 4 | 3: 380, NA: 243, 4: 188, 2: 184 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0107.3: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnormparents_02_T3 | Kys0107.3: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 238 | 927 | 1165 | 7 | NA: 238, 7: 193, 4: 192, 3: 135 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0106.3: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_01_T3 | Kys0106.3: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 234 | 931 | 1165 | 7 | NA: 234, 4: 233, 7: 181, 3: 143 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_01_T3 | Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 237 | 928 | 1165 | 5 | 1: 554, NA: 237, 3: 170, 2: 145 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_02_T3 | Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 1: 611, NA: 239, 2: 146, 3: 115 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_03_T3 | Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 1: 604, NA: 244, 3: 127, 2: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0138.3: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_01_T3 | Kys0138.3: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 237 | 928 | 1165 | 6 | 4: 252, NA: 237, 3: 183, 6: 137 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0139.3: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_02_T3 | Kys0139.3: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 243 | 922 | 1165 | 6 | 1: 481, NA: 243, 4: 121, 3: 118 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0140.3: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_03_T3 | Kys0140.3: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 243 | 922 | 1165 | 6 | 1: 497, NA: 243, 3: 125, 4: 121 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0141.3: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)246 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_04_T3 | Kys0141.3: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 246 | 919 | 1165 | 6 | 1: 524, NA: 246, 3: 115, 4: 88 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0142.3: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)250 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_05_T3 | Kys0142.3: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 250 | 915 | 1165 | 6 | 1: 360, NA: 250, 4: 162, 3: 155 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0143.3: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)249 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_06_T3 | Kys0143.3: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 249 | 916 | 1165 | 6 | NA: 249, 4: 207, 1: 190, 3: 155 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0144.3: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_07_T3 | Kys0144.3: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 243 | 922 | 1165 | 6 | 1: 439, NA: 243, 3: 136, 4: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0145.3: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_08_T3 | Kys0145.3: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 243 | 922 | 1165 | 6 | 1: 384, NA: 243, 3: 148, 4: 147 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0146.3: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_09_T3 | Kys0146.3: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6,Saavutin tavoitteeni6=7 | 252 | 913 | 1165 | 7 | 1: 297, NA: 252, 4: 169, 3: 130 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)257 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_01_T3 | Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 257 | 908 | 1165 | 2 | 1: 554, 0: 354, NA: 257 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_01_T3 | Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 3: 279, NA: 241, 4: 193, 5: 178 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.3: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)240 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_02_T3 | Kys0088.3: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 240 | 925 | 1165 | 5 | 5: 334, NA: 240, 4: 225, 3: 212 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_03_T3 | Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 3: 255, NA: 244, 5: 236, 4: 212 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_01_T3 | Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 238 | 927 | 1165 | 7 | 4: 244, NA: 238, 7: 235, 5: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_04_T3 | Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 3: 305, NA: 239, 5: 221, 4: 199 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_05_T3 | Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 3: 290, NA: 239, 4: 219, 5: 214 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_06_T3 | Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 3: 268, NA: 241, 5: 204, 4: 165 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0113.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)245 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_01_T3 | Kys0113.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 245 | 920 | 1165 | 7 | 7: 369, NA: 245, 4: 162, 5: 107 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0114.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_02_T3 | Kys0114.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 241 | 924 | 1165 | 7 | 7: 373, NA: 241, 4: 170, 5: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_07_T3 | Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 5: 285, 4: 267, NA: 241, 3: 223 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.3: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)242 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_08_T3 | Kys0093.3: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 242 | 923 | 1165 | 5 | 5: 279, 4: 273, NA: 242, 3: 235 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.3: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)247 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_09_T3 | Kys0095.3: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 247 | 918 | 1165 | 5 | 3: 264, 5: 250, 4: 247, NA: 247 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.3: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_04_T3 | Kys0084.3: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 1: 372, NA: 244, 3: 234, 4: 125 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_05_T3 | Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 1: 335, NA: 239, 3: 217, 2: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0068.3: Se saisi minut hyvälle tuulelle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_01_T3 | Kys0068.3: Se saisi minut hyvälle tuulelle | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 233 | 932 | 1165 | 7 | 7: 338, NA: 233, 4: 171, 6: 162 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0070.3: Se auttaisi pitämään painoni kurissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_03_T3 | Kys0070.3: Se auttaisi pitämään painoni kurissa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 239 | 926 | 1165 | 7 | 7: 298, NA: 239, 4: 208, 6: 153 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0071.3: Se auttaisi kasvattamaan lihasmassaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_04_T3 | Kys0071.3: Se auttaisi kasvattamaan lihasmassaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 236 | 929 | 1165 | 7 | 7: 335, NA: 236, 6: 189, 5: 164 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0072.3: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_05_T3 | Kys0072.3: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 235 | 930 | 1165 | 7 | 7: 248, NA: 235, 4: 207, 5: 202 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0073.3: Se auttaisi minua jaksamaan
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_06_T3 | Kys0073.3: Se auttaisi minua jaksamaan | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 237 | 928 | 1165 | 7 | 7: 282, NA: 237, 5: 196, 4: 180 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0074.3: Saisin sen avulla uusia kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_07_T3 | Kys0074.3: Saisin sen avulla uusia kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 239 | 926 | 1165 | 7 | 4: 247, NA: 239, 7: 202, 5: 186 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0077.3: Se auttaisi minua nukkumaan paremmin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_10_T3 | Kys0077.3: Se auttaisi minua nukkumaan paremmin | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 237 | 928 | 1165 | 7 | 7: 294, NA: 237, 4: 190, 6: 190 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0078.3: Saisin sen avulla onnistumisen kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_11_T3 | Kys0078.3: Saisin sen avulla onnistumisen kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 238 | 927 | 1165 | 7 | 7: 272, NA: 238, 4: 222, 6: 171 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0079.3: Se tukisi itsetuntoani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)243 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_12_T3 | Kys0079.3: Se tukisi itsetuntoani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 243 | 922 | 1165 | 7 | 7: 298, NA: 243, 4: 212, 6: 157 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0069.3: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_02_T3 | Kys0069.3: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 238 | 927 | 1165 | 7 | NA: 238, 4: 223, 1: 222, 2: 188 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0075.3: Se olisi stressaavaa ja henkisesti rasittavaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_08_T3 | Kys0075.3: Se olisi stressaavaa ja henkisesti rasittavaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 234 | 931 | 1165 | 7 | 1: 312, NA: 234, 2: 209, 4: 206 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0076.3: Se olisi ikävällä tavalla fyysisesti väsyttävää
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_09_T3 | Kys0076.3: Se olisi ikävällä tavalla fyysisesti väsyttävää | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 239 | 926 | 1165 | 7 | 1: 292, NA: 239, 2: 196, 4: 187 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0098.3: Minulla on riittävästi rahaa liikunnan harrastamiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_01_T3 | Kys0098.3: Minulla on riittävästi rahaa liikunnan harrastamiseen | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 235 | 930 | 1165 | 7 | 7: 275, NA: 235, 4: 207, 5: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0099.3: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_02_T3 | Kys0099.3: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 235 | 930 | 1165 | 7 | 7: 346, NA: 235, 6: 177, 5: 149 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0101.3: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_04_T3 | Kys0101.3: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 233 | 932 | 1165 | 7 | 7: 356, NA: 233, 6: 168, 4: 159 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0102.3: Liikuntavälineiden puute ei ole este liikkumiselleni
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_05_T3 | Kys0102.3: Liikuntavälineiden puute ei ole este liikkumiselleni | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 235 | 930 | 1165 | 7 | 7: 322, NA: 235, 4: 193, 6: 146 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0104.3: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)229 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_07_T3 | Kys0104.3: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 229 | 936 | 1165 | 7 | NA: 229, 4: 225, 7: 220, 5: 178 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0100.3: Minulla ei ole tarvitsemiani liikuntavälineitä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_03_T3 | Kys0100.3: Minulla ei ole tarvitsemiani liikuntavälineitä | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 235 | 930 | 1165 | 7 | 7: 293, NA: 235, 4: 230, 6: 141 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0103.3: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_06_T3 | Kys0103.3: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 233 | 932 | 1165 | 7 | NA: 233, 4: 228, 3: 157, 1: 147 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0125.3: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)232 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_01_T3 | Kys0125.3: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 232 | 933 | 1165 | 7 | 7: 369, NA: 232, 5: 163, 4: 159 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0127.3: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_03_T3 | Kys0127.3: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 235 | 930 | 1165 | 7 | NA: 235, 7: 231, 4: 227, 5: 163 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0126.3: Liikkuminen säännöllisesti ei riipu täysin minusta.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbcReverseCoded_02_T3 | Kys0126.3: Liikkuminen säännöllisesti ei riipu täysin minusta. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 234 | 931 | 1165 | 7 | NA: 234, 7: 206, 4: 195, 3: 135 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0123.3: Jos haluaisin, voisin liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_01_T3 | Kys0123.3: Jos haluaisin, voisin liikkua säännöllisesti. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,4=4,5=5,6=6,Täysin samaa mieltä7=7 | 234 | 931 | 1165 | 7 | 7: 437, NA: 234, 5: 164, 4: 136 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0124.3: Liikkuminen säännöllisesti on minulle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)229 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacyReverseCoded_02_T3 | Kys0124.3: Liikkuminen säännöllisesti on minulle | labelled | FALSE | Helppoa1=1,2=2,3=3,4=4,5=5,6=6,Vaikeaa7=7 | 229 | 936 | 1165 | 7 | NA: 229, 4: 199, 7: 167, 3: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T3)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)657 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| paAccelerometer_T3 | Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T3) | numeric | 657 | 508 | 1165 | 180.85 | 52.53 | 47.48 | 144.48 | 180.5 | 212.97 | 372.14 | <U+ | 2583>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)221 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| padaysLastweek_T3 | labelled | FALSE | 0 (en yhtenäkään)=0,1=1,2=2,3=3,4=4,5=5,6=6,7=7 | 221 | 944 | 1165 | 8 | 3: 237, NA: 221, 2: 189, 4: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)231 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pafreqUsually_T3 | labelled | FALSE | En voi vamman tai sairauden takia harrastaa liikuntaa=0,Harvemmin kuin kerran viikossa=1,1-2 kertaa viikossa=2,3 kertaa viikossa=3,4 kertaa viikossa=4,5 kertaa viikossa tai useammin=5 | 231 | 934 | 1165 | 6 | 2: 312, NA: 231, 3: 199, 1: 184 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0046.3: Yhteensä - Tuntia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)264 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| pahrsLastweek_T3 | Kys0046.3: Yhteensä - Tuntia: | labelled | FALSE | 0=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,8=9,9=10,10=11,11=12,12=13,13=14,14=15,15=16,16=17,17=18,18=19,19=20,20=21,21=22,22=23,23=24,24=25,25=26,26=27,27=28,28=29,29=30,30=31,31=32,32=33,33=34,34=35,35=36,36=37,37=38,38=39,39=40,40=41,41=42,42=43,43=44,44=45,45=46,46=47,47=48,48=49,49=50,50=51,51=52,52=53,53=54,54=55,55=56,56=57,57=58,58=59,59=60,60=61 | 264 | 901 | 1165 | 34 | NA: 264, 2: 163, 3: 130, 4: 121 | F2.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pahrsUsually_T3 | labelled | FALSE | En yhtään=0,Noin puoli tuntia=1,Noin 1 tunnin=2,Noin 1,5 tuntia=3,Noin 2-3 tuntia=4,Noin 4-6 tuntia=5,Noin 7 tuntia tai enemmän=6 | 236 | 929 | 1165 | 7 | NA: 236, 4: 196, 5: 170, 3: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0047.3: Yhteensä - Minuuttia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)440 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| paminLastweek_T3 | Kys0047.3: Yhteensä - Minuuttia: | labelled | FALSE | 0=1,30=2 | 440 | 725 | 1165 | 2 | NA: 440, 2: 397, 1: 328 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0178.3: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)249 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_01_T3 | Kys0178.3: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 249 | 916 | 1165 | 7 | 4: 367, NA: 249, 1: 215, 2: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0179.3: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)255 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_02_T3 | Kys0179.3: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 255 | 910 | 1165 | 7 | 4: 394, NA: 255, 1: 163, 2: 93 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0180.3: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_01_T3 | Kys0180.3: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 252 | 913 | 1165 | 7 | 4: 423, NA: 252, 7: 115, 5: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0181.3: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)257 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_02_T3 | Kys0181.3: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 257 | 908 | 1165 | 7 | 4: 382, NA: 257, 5: 137, 7: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0187.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_01_T3 | Kys0187.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 252 | 913 | 1165 | 7 | NA: 252, 4: 243, 1: 166, 3: 129 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0188.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)254 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_02_T3 | Kys0188.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 254 | 911 | 1165 | 7 | 4: 277, NA: 254, 3: 129, 5: 128 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0189.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)253 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_03_T3 | Kys0189.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 253 | 912 | 1165 | 7 | NA: 253, 4: 223, 5: 151, 7: 151 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0190.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_04_T3 | Kys0190.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 252 | 913 | 1165 | 7 | NA: 252, 4: 249, 5: 163, 7: 143 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0171.3: … oloni olisi epämukava.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)250 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_01_T3 | Kys0171.3: … oloni olisi epämukava. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 250 | 915 | 1165 | 7 | 4: 310, 1: 273, NA: 250, 2: 105 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0172.3: … virkistyisin ja jaksaisin paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)254 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_02_T3 | Kys0172.3: … virkistyisin ja jaksaisin paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 254 | 911 | 1165 | 7 | NA: 254, 4: 253, 7: 207, 5: 200 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0173.3: keskittymiskykyni paranisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)256 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_03_T3 | Kys0173.3: keskittymiskykyni paranisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 256 | 909 | 1165 | 7 | 4: 268, NA: 256, 7: 201, 5: 190 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0174.3: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)253 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_04_T3 | Kys0174.3: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 253 | 912 | 1165 | 7 | NA: 253, 4: 243, 7: 230, 5: 149 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0175.3: lihakseni eivät rappeutuisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)254 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_05_T3 | Kys0175.3: lihakseni eivät rappeutuisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 254 | 911 | 1165 | 7 | 4: 258, NA: 254, 7: 225, 5: 166 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0176.3: aivoni toimisivat paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)256 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_06_T3 | Kys0176.3: aivoni toimisivat paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 256 | 909 | 1165 | 7 | 4: 258, NA: 256, 7: 217, 6: 158 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0177.3: se häiritsisi asioiden tekemistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_07_T3 | Kys0177.3: se häiritsisi asioiden tekemistä. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 252 | 913 | 1165 | 7 | 4: 313, NA: 252, 1: 211, 2: 118 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0182.3: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)253 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_01_T3 | Kys0182.3: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 253 | 912 | 1165 | 7 | 4: 286, NA: 253, 5: 174, 7: 168 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0183.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_02_T3 | Kys0183.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 252 | 913 | 1165 | 7 | 4: 294, NA: 252, 7: 161, 5: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0184.3: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)252 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_03_T3 | Kys0184.3: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 252 | 913 | 1165 | 7 | 7: 390, NA: 252, 4: 191, 6: 134 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0185.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)253 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_04_T3 | Kys0185.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 253 | 912 | 1165 | 7 | 7: 380, NA: 253, 4: 202, 6: 139 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0186.3: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)259 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_05_T3 | Kys0186.3: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 259 | 906 | 1165 | 7 | 4: 321, NA: 259, 7: 221, 5: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen makuun ja istumisen (SB) aika päivässä (T3)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)657 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sitLieAccelerometer_T3 | Keskimääräinen makuun ja istumisen (SB) aika päivässä (T3) | numeric | 657 | 508 | 1165 | 564.11 | 94.67 | 317.38 | 492.63 | 560.23 | 627.28 | 845.63 | <U+ | 2582>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0031.3: Niska- tai hartiakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_neckShoulderPain_T3 | Kys0031.3: Niska- tai hartiakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 235 | 930 | 1165 | 4 | 1: 396, 2: 269, NA: 235, 3: 176 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0032.3: Selän alaosan kipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)240 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_lowerBackPain_T3 | Kys0032.3: Selän alaosan kipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 240 | 925 | 1165 | 4 | 1: 447, 2: 288, NA: 240, 3: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0033.3: Vatsakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)249 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_stomachAche_T3 | Kys0033.3: Vatsakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 249 | 916 | 1165 | 4 | 1: 412, 2: 352, NA: 249, 3: 118 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0034.3: Jännittyneisyyttä tai hermostuneisuutta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tensionNervousness_T3 | Kys0034.3: Jännittyneisyyttä tai hermostuneisuutta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 234 | 931 | 1165 | 4 | 1: 374, 2: 273, NA: 234, 3: 203 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0035.3: Ärtyneisyyttä tai kiukunpurkauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_irritabilityAngerbursts_T3 | Kys0035.3: Ärtyneisyyttä tai kiukunpurkauksia | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 239 | 926 | 1165 | 4 | 1: 391, 2: 258, NA: 239, 3: 203 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0036.3: Vaikeuksia päästä uneen tai heräilemistä öisin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_sleepDifficulty_T3 | Kys0036.3: Vaikeuksia päästä uneen tai heräilemistä öisin | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 236 | 929 | 1165 | 4 | 1: 373, 2: 237, NA: 236, 3: 189 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0037.3: Päänsärkyä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)231 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_headAche_T3 | Kys0037.3: Päänsärkyä | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 231 | 934 | 1165 | 4 | 2: 329, 1: 318, NA: 231, 3: 217 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0038.3: Väsymystä tai heikotusta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)232 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tirednessFaintness_T3 | Kys0038.3: Väsymystä tai heikotusta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 232 | 933 | 1165 | 4 | 2: 277, 3: 267, 1: 241, NA: 232 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_T3 | numeric | 233 | 932 | 1165 | 3.21 | 1.38 | 1 | 2.1 | 3.2 | 4.1 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_T3 | numeric | 234 | 931 | 1165 | 1.61 | 0.84 | 1 | 1 | 1 | 2 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_T3 | numeric | 233 | 932 | 1165 | 3.45 | 1.05 | 1 | 2.78 | 3.44 | 4.22 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_T3 | numeric | 235 | 930 | 1165 | 1.98 | 0.89 | 1 | 1 | 1.8 | 2.6 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_T3 | numeric | 233 | 932 | 1165 | 4.31 | 1.61 | 1 | 3 | 4 | 5.5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_T3 | numeric | 237 | 928 | 1165 | 2.72 | 1.24 | 1 | 1.67 | 2.67 | 3.56 | 6.11 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)257 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_T3 | Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 257 | 908 | 1165 | 2 | 1: 554, 0: 354, NA: 257 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)238 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_T3 | Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 238 | 927 | 1165 | 7 | 4: 244, NA: 238, 7: 235, 5: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_T3 | numeric | 234 | 931 | 1165 | 5.12 | 1.86 | 1 | 4 | 5.5 | 7 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)229 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_T3 | numeric | 229 | 936 | 1165 | 4.63 | 0.92 | 1 | 4 | 4.67 | 5.33 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)229 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_T3 | numeric | 229 | 936 | 1165 | 4.88 | 1.03 | 1.43 | 4 | 4.86 | 5.71 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)231 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_T3 | numeric | 231 | 934 | 1165 | 4.97 | 1.22 | 1 | 4 | 5 | 6 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)228 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_T3 | numeric | 228 | 937 | 1165 | 4.96 | 1.29 | 1 | 4 | 4.5 | 6 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)249 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_T3 | numeric | 249 | 916 | 1165 | 3.4 | 1.56 | 1 | 2 | 4 | 4 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_T3 | numeric | 248 | 917 | 1165 | 4.28 | 1.35 | 1 | 4 | 4 | 5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_T3 | numeric | 248 | 917 | 1165 | 4.01 | 1.69 | 1 | 3 | 4 | 5 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)248 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_T3 | numeric | 248 | 917 | 1165 | 4.44 | 1.06 | 1 | 4 | 4.43 | 5.29 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)249 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_T3 | numeric | 249 | 916 | 1165 | 4.98 | 1.33 | 1 | 4 | 5 | 6 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)216 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_T3 | numeric | 216 | 949 | 1165 | 2 | 0.7 | 1 | 1.5 | 1.88 | 2.5 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actionplan_T3 | numeric | 235 | 930 | 1165 | 2.71 | 0.94 | 1 | 2 | 3 | 3.25 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copingplan_T3 | numeric | 233 | 932 | 1165 | 2.48 | 0.92 | 1 | 2 | 2.5 | 3 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)94 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_sePbc_T1 | numeric | 94 | 1071 | 1165 | 5.27 | 1.07 | 1.75 | 4.5 | 5.33 | 6.08 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)228 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_sePbc_T3 | numeric | 228 | 937 | 1165 | 4.96 | 1.08 | 1 | 4.17 | 4.83 | 5.75 | 7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actCop_T1 | numeric | 92 | 1073 | 1165 | 2.63 | 0.84 | 1 | 2 | 2.75 | 3.12 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)233 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actCop_T3 | numeric | 233 | 932 | 1165 | 2.59 | 0.88 | 1 | 2 | 2.75 | 3 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.1: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)97 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_01_T1 | Kys0080.1: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 97 | 1068 | 1165 | 5 | 1: 682, 2: 164, 3: 158, NA: 97 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.1: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)96 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_02_T1 | Kys0081.1: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 96 | 1069 | 1165 | 5 | 1: 784, 2: 129, 3: 109, NA: 96 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.1: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)101 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_03_T1 | Kys0083.1: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 101 | 1064 | 1165 | 5 | 1: 740, 2: 145, 3: 122, NA: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.1: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)97 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_01_T1 | Kys0084.1: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 97 | 1068 | 1165 | 5 | 1: 518, 3: 219, 2: 134, 4: 108 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.1: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_02_T1 | Kys0085.1: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 1: 457, 3: 212, 2: 161, 4: 135 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.1: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_01_T1 | Kys0087.1: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 102 | 1063 | 1165 | 5 | 3: 298, 4: 240, 5: 196, 1: 178 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.1: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)102 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_02_T1 | Kys0088.1: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 102 | 1063 | 1165 | 5 | 5: 391, 4: 275, 3: 225, NA: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.1: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_03_T1 | Kys0090.1: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 3: 283, 5: 280, 4: 224, 2: 175 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.1: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_01_T1 | Kys0089.1: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 3: 338, 5: 260, 4: 196, 2: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.1: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)103 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_02_T1 | Kys0092.1: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 103 | 1062 | 1165 | 5 | 3: 311, 5: 239, 4: 221, 2: 161 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.1: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_03_T1 | Kys0094.1: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 3: 256, 5: 224, 4: 206, 2: 201 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.1: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)95 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_01_T1 | Kys0091.1: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 95 | 1070 | 1165 | 5 | 5: 372, 4: 278, 3: 240, 2: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.1: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)99 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_02_T1 | Kys0093.1: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 99 | 1066 | 1165 | 5 | 5: 323, 4: 294, 3: 258, 2: 115 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.1: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)108 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_03_T1 | Kys0095.1: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 108 | 1057 | 1165 | 5 | 5: 295, 3: 264, 4: 264, 2: 138 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)91 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_T1 | numeric | 91 | 1074 | 1165 | 3.61 | 1.14 | 1 | 3 | 3.67 | 4.67 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_T1 | numeric | 92 | 1073 | 1165 | 3.22 | 1.18 | 1 | 2.33 | 3 | 4 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)91 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_T1 | numeric | 91 | 1074 | 1165 | 3.41 | 1.1 | 1 | 2.67 | 3.5 | 4.33 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)92 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_T1 | numeric | 92 | 1073 | 1165 | 2.24 | 1.25 | 1 | 1 | 2 | 3 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)96 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_T1 | numeric | 96 | 1069 | 1165 | 1.56 | 0.83 | 1 | 1 | 1 | 2 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_01_T3 | Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 237 | 928 | 1165 | 5 | 1: 554, NA: 237, 3: 170, 2: 145 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_02_T3 | Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 1: 611, NA: 239, 2: 146, 3: 115 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_03_T3 | Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 1: 604, NA: 244, 3: 127, 2: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.3: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_01_T3 | Kys0084.3: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 1: 372, NA: 244, 3: 234, 4: 125 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_02_T3 | Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 1: 335, NA: 239, 3: 217, 2: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_01_T3 | Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 3: 279, NA: 241, 4: 193, 5: 178 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.3: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)240 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_02_T3 | Kys0088.3: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 240 | 925 | 1165 | 5 | 5: 334, NA: 240, 4: 225, 3: 212 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)244 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_03_T3 | Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 244 | 921 | 1165 | 5 | 3: 255, NA: 244, 5: 236, 4: 212 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_01_T3 | Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 3: 305, NA: 239, 5: 221, 4: 199 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)239 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_02_T3 | Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 239 | 926 | 1165 | 5 | 3: 290, NA: 239, 4: 219, 5: 214 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_03_T3 | Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 3: 268, NA: 241, 5: 204, 4: 165 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)241 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_01_T3 | Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 241 | 924 | 1165 | 5 | 5: 285, 4: 267, NA: 241, 3: 223 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.3: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)242 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_02_T3 | Kys0093.3: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 242 | 923 | 1165 | 5 | 5: 279, 4: 273, NA: 242, 3: 235 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.3: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)247 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_03_T3 | Kys0095.3: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 247 | 918 | 1165 | 5 | 3: 264, 5: 250, 4: 247, NA: 247 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_T3 | numeric | 236 | 929 | 1165 | 3.64 | 1.1 | 1 | 3 | 3.67 | 4.67 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)236 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_T3 | numeric | 236 | 929 | 1165 | 3.31 | 1.16 | 1 | 2.67 | 3.33 | 4 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)234 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_T3 | numeric | 234 | 931 | 1165 | 3.41 | 1.13 | 1 | 2.67 | 3.33 | 4.33 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)235 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_T3 | numeric | 235 | 930 | 1165 | 2.43 | 1.28 | 1 | 1 | 2.5 | 3.5 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)237 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_T3 | numeric | 237 | 928 | 1165 | 1.67 | 0.91 | 1 | 1 | 1 | 2.33 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0115.3: … milloin liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_01_diff | Kys0115.3: … milloin liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 309 | 856 | 1165 | 7 | 0: 405, NA: 309, -1: 169, 1: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0116.3: … missä liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)311 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_02_diff | Kys0116.3: … missä liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 311 | 854 | 1165 | 7 | 0: 436, NA: 311, -1: 153, 1: 135 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0117.3: … kuinka liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_03_diff | Kys0117.3: … kuinka liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 313 | 852 | 1165 | 7 | 0: 434, NA: 313, -1: 164, 1: 123 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0118.3: … kuinka usein liikkua
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actplan_04_diff | Kys0118.3: … kuinka usein liikkua | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 310 | 855 | 1165 | 7 | 0: 435, NA: 310, -1: 170, 1: 136 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0128.3: Olen asettanut itselleni liikuntatavoitteita.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_01_diff | Kys0128.3: Olen asettanut itselleni liikuntatavoitteita. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 304 | 861 | 1165 | 11 | 0: 322, NA: 304, 1: 112, -1: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0129.3: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_02_diff | Kys0129.3: Olen itse tehnyt tarkan suunnitelman (mitä, missä, milloin) omaehtoisen liikun | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 306 | 859 | 1165 | 11 | 0: 315, NA: 306, 1: 126, -1: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0130.3: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_03_diff | Kys0130.3: Minulla on liikuntasuunnitelma, jonka joku muu, esim. liikuntaseurani, on tehnyt | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 306 | 859 | 1165 | 11 | 0: 425, NA: 306, 1: 94, -1: 68 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0131.3: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_04_diff | Kys0131.3: Minulla on tapa, jolla muistutan itseäni liikuntasuunnitelmastani, esim. kirjoit | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 304 | 861 | 1165 | 11 | 0: 348, NA: 304, 1: 117, -1: 89 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0132.3: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)305 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_05_diff | Kys0132.3: Olen pilkkonut laajempia liikuntatavoitteitani pienempiin osatavoitteisiin. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 305 | 860 | 1165 | 11 | 0: 339, NA: 305, 1: 137, -1: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0133.3: Olen kokeillut minulle uusia tapoja liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_06_diff | Kys0133.3: Olen kokeillut minulle uusia tapoja liikkua. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 314 | 851 | 1165 | 11 | 0: 315, NA: 314, 1: 133, -1: 114 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0134.3: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_07_diff | Kys0134.3: Olen pohtinut, millaiset vaikeat tilanteet tai esteet estävät minua toteuttamast | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 312 | 853 | 1165 | 11 | NA: 312, 0: 281, 1: 130, -1: 104 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0135.3: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_08_diff | Kys0135.3: Olen suunnitellut tapoja ylittää liikunnan harrastamisen esteitä. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 307 | 858 | 1165 | 11 | NA: 307, 0: 289, 1: 139, -1: 123 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0136.3: Olen miettinyt, miten liikunta sopii omaan minäkuvaani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_09_diff | Kys0136.3: Olen miettinyt, miten liikunta sopii omaan minäkuvaani. | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 307 | 858 | 1165 | 11 | NA: 307, 0: 299, 1: 149, -1: 132 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0137.3: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_10_diff | Kys0137.3: Olen pyrkinyt löytämään tapoja liikkua siten, että se ei häiritse vaan tukee mui | labelled | FALSE | Ei pidä lainkaan paikkaansa0=1,1=2,2=3,3=4,4=5,Pitää täysin paikkansa5=6 | 310 | 855 | 1165 | 11 | NA: 310, 0: 296, 1: 137, -1: 129 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0082.3: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)317 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_01_diff | Kys0082.3: En ymmärrä, miksi minun pitäisi liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 317 | 848 | 1165 | 9 | 0: 564, NA: 317, 1: 75, -1: 72 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0086.3: En näe mitään syytä liikkua vapaa-ajallani.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)318 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_02_diff | Kys0086.3: En näe mitään syytä liikkua vapaa-ajallani. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 318 | 847 | 1165 | 9 | 0: 569, NA: 318, 1: 82, -1: 75 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0096.3: En näe, mitä järkeä on liikkua vapaa-ajalla.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_03_diff | Kys0096.3: En näe, mitä järkeä on liikkua vapaa-ajalla. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 312 | 853 | 1165 | 9 | 0: 520, NA: 312, 1: 96, -1: 80 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0097.3: Mielestäni liikkuminen on ajanhukkaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)308 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_04_diff | Kys0097.3: Mielestäni liikkuminen on ajanhukkaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 308 | 857 | 1165 | 9 | 0: 578, NA: 308, 1: 82, -1: 65 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0119.3: … mitä tehdä silloin, kun jokin sotkee suunnitelmani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)301 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_01_diff | Kys0119.3: … mitä tehdä silloin, kun jokin sotkee suunnitelmani | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 301 | 864 | 1165 | 7 | 0: 384, NA: 301, -1: 190, 1: 176 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0120.3: … kuinka selviytyä repsahduksista
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)303 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_02_diff | Kys0120.3: … kuinka selviytyä repsahduksista | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 303 | 862 | 1165 | 7 | 0: 398, NA: 303, 1: 171, -1: 157 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0121.3: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_03_diff | Kys0121.3: … kuinka pysyä suunnitelmissa vaikeissakin tilanteissa | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 304 | 861 | 1165 | 7 | 0: 415, NA: 304, -1: 173, 1: 154 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0122.3: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copplan_04_diff | Kys0122.3: … kuinka hyödyntää hyviä tilaisuuksia liikkumiseen | labelled | FALSE | Ei pidä paikkaansa1=1,Ei pidä enimmäkseen paikkaansa2=2,Pitää enimmäkseen paikkansa3=3,Pitää täysin paikkansa4=4 | 307 | 858 | 1165 | 7 | 0: 411, NA: 307, -1: 191, 1: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0107.3: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)303 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_02_diff | Kys0107.3: Vanhempani liikkuvat säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 303 | 862 | 1165 | 13 | 0: 324, NA: 303, -1: 135, 1: 121 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0106.3: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)301 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_01_diff | Kys0106.3: Suurin osa ystävistäni liikkuu säännöllisesti, vähintään 1,5 tuntia viikoittain | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 301 | 864 | 1165 | 13 | 0: 312, NA: 301, -1: 133, 1: 124 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_01_diff | Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 513, NA: 306, 1: 106, -1: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_02_diff | Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 575, NA: 306, 1: 106, -1: 63 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_03_diff | Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 313 | 852 | 1165 | 9 | 0: 538, NA: 313, 1: 104, -1: 92 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0138.3: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)305 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_01_diff | Kys0138.3: Olen muistuttanut mieleeni myös vapaa-ajallani, millaisia myönteisiä seurauksia | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 305 | 860 | 1165 | 11 | NA: 305, 0: 299, -1: 160, 1: 137 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0139.3: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_02_diff | Kys0139.3: Olen seurannut liikkumistani merkitsemällä liikuntakerrat paperiseen liikkumispä | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 309 | 856 | 1165 | 11 | 0: 444, NA: 309, 1: 104, 2: 71 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0140.3: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_03_diff | Kys0140.3: Olen seurannut liikkumistani käyttämällä älypuhelinta, esim. Moves-appia. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 309 | 856 | 1165 | 11 | 0: 468, NA: 309, 1: 80, 2: 71 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0141.3: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)311 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_04_diff | Kys0141.3: Käytän muistivihjeitä, joiden avulla muistan toteuttaa liikunta-aikomukseni. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 311 | 854 | 1165 | 11 | 0: 460, NA: 311, 1: 80, 2: 73 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0142.3: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_05_diff | Kys0142.3: Olen verrannut toteutunutta liikuntaani asettamaani liikuntatavoitteeseen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 314 | 851 | 1165 | 11 | 0: 345, NA: 314, 1: 116, 2: 88 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0143.3: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_06_diff | Kys0143.3: Olen miettinyt, mitkä liikunnan harrastamisen syyt ovat minulle itselleni tärkei | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 313 | 852 | 1165 | 11 | NA: 313, 0: 299, 1: 138, -1: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0144.3: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_07_diff | Kys0144.3: Olen tehnyt muutoksia kotiini (esim. huoneeseeni tai tietokoneelleni), jotta lii | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 310 | 855 | 1165 | 11 | 0: 410, NA: 310, 1: 97, -1: 88 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0145.3: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_08_diff | Kys0145.3: Olen pyytänyt kavereiltani tai perheeltäni tukea liikuntatavoitteideni saavuttam | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6 | 309 | 856 | 1165 | 11 | 0: 351, NA: 309, 1: 110, -1: 105 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0146.3: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)317 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_09_diff | Kys0146.3: Jos en ole saavuttanut liikuntatavoitettani, olen arvioinut, mikä meni pieleen. | labelled | FALSE | En kertaakaan0=1,Kerran1=2,Kahdesti2=3,Viikoittain3=4,Noin joka toinen päivä4=5,Päivittäin5=6,Saavutin tavoitteeni6=7 | 317 | 848 | 1165 | 13 | 0: 319, NA: 317, 1: 125, -1: 95 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)330 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_01_diff | Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 330 | 835 | 1165 | 3 | 0: 600, NA: 330, 1: 143, -1: 92 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_01_diff | Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 314 | 851 | 1165 | 9 | 0: 348, NA: 314, -1: 154, 1: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.3: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_02_diff | Kys0088.3: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 312 | 853 | 1165 | 9 | 0: 413, NA: 312, 1: 134, -1: 132 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_03_diff | Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 310 | 855 | 1165 | 9 | 0: 389, NA: 310, 1: 176, -1: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_01_diff | Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 304 | 861 | 1165 | 13 | 0: 321, NA: 304, 1: 121, -1: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_04_diff | Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 398, NA: 306, 1: 188, -1: 142 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_05_diff | Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 312 | 853 | 1165 | 9 | 0: 410, NA: 312, 1: 183, -1: 128 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_06_diff | Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 310 | 855 | 1165 | 9 | 0: 415, NA: 310, 1: 182, -1: 126 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0113.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)311 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_01_diff | Kys0113.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 311 | 854 | 1165 | 13 | 0: 375, NA: 311, -1: 111, 1: 93 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0114.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_02_diff | Kys0114.3: Aion liikkua säännöllisesti viikoittain vähintään 1,5 tuntia seuraavan kuukauden | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 307 | 858 | 1165 | 13 | 0: 384, NA: 307, -1: 103, 1: 97 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_07_diff | Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 449, NA: 306, -1: 152, 1: 139 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.3: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_08_diff | Kys0093.3: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 314 | 851 | 1165 | 9 | 0: 435, NA: 314, 1: 160, -1: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.3: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_09_diff | Kys0095.3: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 321 | 844 | 1165 | 9 | 0: 408, NA: 321, 1: 171, -1: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.3: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_04_diff | Kys0084.3: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 309 | 856 | 1165 | 9 | 0: 430, NA: 309, 1: 125, -1: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_05_diff | Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 309 | 856 | 1165 | 9 | 0: 396, NA: 309, 1: 156, -1: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0068.3: Se saisi minut hyvälle tuulelle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_01_diff | Kys0068.3: Se saisi minut hyvälle tuulelle | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 304 | 861 | 1165 | 13 | 0: 377, NA: 304, -1: 134, 1: 123 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0070.3: Se auttaisi pitämään painoni kurissa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_03_diff | Kys0070.3: Se auttaisi pitämään painoni kurissa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 314 | 851 | 1165 | 13 | 0: 356, NA: 314, 1: 129, -1: 116 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0071.3: Se auttaisi kasvattamaan lihasmassaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)305 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_04_diff | Kys0071.3: Se auttaisi kasvattamaan lihasmassaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 305 | 860 | 1165 | 13 | 0: 350, NA: 305, 1: 146, -1: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0072.3: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_05_diff | Kys0072.3: Se parantaisi kykyäni tehdä töitä ja päivittäisiä askareitani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 307 | 858 | 1165 | 13 | 0: 311, NA: 307, -1: 154, 1: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0073.3: Se auttaisi minua jaksamaan
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_06_diff | Kys0073.3: Se auttaisi minua jaksamaan | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 307 | 858 | 1165 | 13 | 0: 323, NA: 307, -1: 165, 1: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0074.3: Saisin sen avulla uusia kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_07_diff | Kys0074.3: Saisin sen avulla uusia kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 313 | 852 | 1165 | 13 | 0: 314, NA: 313, 1: 151, -1: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0077.3: Se auttaisi minua nukkumaan paremmin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)307 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_10_diff | Kys0077.3: Se auttaisi minua nukkumaan paremmin | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 307 | 858 | 1165 | 13 | 0: 350, NA: 307, -1: 156, 1: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0078.3: Saisin sen avulla onnistumisen kokemuksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_11_diff | Kys0078.3: Saisin sen avulla onnistumisen kokemuksia | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 313 | 852 | 1165 | 13 | 0: 334, NA: 313, 1: 145, -1: 141 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0079.3: Se tukisi itsetuntoani
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)311 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_12_diff | Kys0079.3: Se tukisi itsetuntoani | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 311 | 854 | 1165 | 13 | 0: 345, NA: 311, -1: 128, 1: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0069.3: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)311 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_02_diff | Kys0069.3: Se veisi liikaa aikaa muilta elämäni tärkeiltä asioilta | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 311 | 854 | 1165 | 13 | 0: 329, NA: 311, 1: 149, -1: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0075.3: Se olisi stressaavaa ja henkisesti rasittavaa
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_08_diff | Kys0075.3: Se olisi stressaavaa ja henkisesti rasittavaa | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 309 | 856 | 1165 | 13 | 0: 343, NA: 309, 1: 147, -1: 129 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0076.3: Se olisi ikävällä tavalla fyysisesti väsyttävää
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectationsNegative_09_diff | Kys0076.3: Se olisi ikävällä tavalla fyysisesti väsyttävää | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 314 | 851 | 1165 | 13 | 0: 337, NA: 314, 1: 149, -1: 103 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0098.3: Minulla on riittävästi rahaa liikunnan harrastamiseen
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_01_diff | Kys0098.3: Minulla on riittävästi rahaa liikunnan harrastamiseen | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 306 | 859 | 1165 | 13 | 0: 355, NA: 306, -1: 109, 1: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0099.3: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_02_diff | Kys0099.3: Ympäristössäni on hyviä pyöräteitä ja lenkkipolkuja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 306 | 859 | 1165 | 13 | 0: 344, NA: 306, -1: 139, 1: 132 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0101.3: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_04_diff | Kys0101.3: Lähistölläni on paljon hyviä liikuntapaikkoja (esim. urheiluhalleja, kuntosaleja | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 302 | 863 | 1165 | 13 | 0: 379, NA: 302, -1: 118, 1: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0102.3: Liikuntavälineiden puute ei ole este liikkumiselleni
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_05_diff | Kys0102.3: Liikuntavälineiden puute ei ole este liikkumiselleni | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 309 | 856 | 1165 | 13 | 0: 348, NA: 309, -1: 106, 1: 91 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0104.3: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)303 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_07_diff | Kys0104.3: Minulla on paljon mahdollisuuksia harrastaa liikuntaa kotona | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 303 | 862 | 1165 | 13 | NA: 303, 0: 292, 1: 148, -1: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0100.3: Minulla ei ole tarvitsemiani liikuntavälineitä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_03_diff | Kys0100.3: Minulla ei ole tarvitsemiani liikuntavälineitä | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 309 | 856 | 1165 | 13 | 0: 323, NA: 309, 1: 106, -1: 97 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0103.3: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunitiesReverseCoded_06_diff | Kys0103.3: Minulla on paljon kiireitä koulun, harrastusten ja/tai kaverien vuoksi | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,Ei eri eikä samaa mieltä4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 312 | 853 | 1165 | 13 | NA: 312, 0: 262, -1: 140, 1: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0125.3: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)300 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_01_diff | Kys0125.3: Voin itse täysin vaikuttaa siihen, liikunko säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 300 | 865 | 1165 | 12 | 0: 382, NA: 300, -1: 136, 1: 95 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0127.3: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_03_diff | Kys0127.3: Olen varma, että pystyisin voittamaan hankaluudet, jotka estävät minua liikkumas | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 304 | 861 | 1165 | 13 | 0: 309, NA: 304, -1: 144, 1: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0126.3: Liikkuminen säännöllisesti ei riipu täysin minusta.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbcReverseCoded_02_diff | Kys0126.3: Liikkuminen säännöllisesti ei riipu täysin minusta. | labelled | FALSE | Ei pidä lainkaan paikkaansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 306 | 859 | 1165 | 13 | NA: 306, 0: 281, -1: 128, 1: 86 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0123.3: Jos haluaisin, voisin liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_01_diff | Kys0123.3: Jos haluaisin, voisin liikkua säännöllisesti. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,4=4,5=5,6=6,Täysin samaa mieltä7=7 | 302 | 863 | 1165 | 13 | 0: 402, NA: 302, -1: 101, 1: 95 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0124.3: Liikkuminen säännöllisesti on minulle
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)298 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacyReverseCoded_02_diff | Kys0124.3: Liikkuminen säännöllisesti on minulle | labelled | FALSE | Helppoa1=1,2=2,3=3,4=4,5=5,6=6,Vaikeaa7=7 | 298 | 867 | 1165 | 13 | NA: 298, 0: 260, -1: 147, 1: 105 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T3)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)733 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| paAccelerometer_diff | Keskimääräinen reippaan ja rasittavan liikunnan (MVPA) minuutit päivässä (T3) | numeric | 733 | 432 | 1165 | -2.43 | 42.7 | -127.11 | -32.44 | -3.23 | 22.98 | 167.2 | <U+ | 2582>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)283 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| padaysLastweek_diff | labelled | FALSE | 0 (en yhtenäkään)=0,1=1,2=2,3=3,4=4,5=5,6=6,7=7 | 283 | 882 | 1165 | 15 | 0: 288, NA: 283, 1: 144, -1: 130 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)292 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pafreqUsually_diff | labelled | FALSE | En voi vamman tai sairauden takia harrastaa liikuntaa=0,Harvemmin kuin kerran viikossa=1,1-2 kertaa viikossa=2,3 kertaa viikossa=3,4 kertaa viikossa=4,5 kertaa viikossa tai useammin=5 | 292 | 873 | 1165 | 9 | 0: 412, NA: 292, 1: 172, -1: 169 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0046.3: Yhteensä - Tuntia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)323 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| pahrsLastweek_diff | Kys0046.3: Yhteensä - Tuntia: | labelled | FALSE | 0=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,8=9,9=10,10=11,11=12,12=13,13=14,14=15,15=16,16=17,17=18,18=19,19=20,20=21,21=22,22=23,23=24,24=25,25=26,26=27,27=28,28=29,29=30,30=31,31=32,32=33,33=34,34=35,35=36,36=37,37=38,38=39,39=40,40=41,41=42,42=43,43=44,44=45,45=46,46=47,47=48,48=49,49=50,50=51,51=52,52=53,53=54,54=55,55=56,56=57,57=58,58=59,59=60,60=61 | 323 | 842 | 1165 | 53 | NA: 323, 0: 171, -1: 124, 1: 119 | F2.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}0
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)297 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|
| pahrsUsually_diff | labelled | FALSE | En yhtään=0,Noin puoli tuntia=1,Noin 1 tunnin=2,Noin 1,5 tuntia=3,Noin 2-3 tuntia=4,Noin 4-6 tuntia=5,Noin 7 tuntia tai enemmän=6 | 297 | 868 | 1165 | 13 | NA: 297, 0: 294, -1: 171, 1: 169 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0047.3: Yhteensä - Minuuttia:
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)488 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| paminLastweek_diff | Kys0047.3: Yhteensä - Minuuttia: | labelled | FALSE | 0=1,30=2 | 488 | 677 | 1165 | 3 | NA: 488, 0: 413, 1: 162, -1: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0178.3: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)319 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_01_diff | Kys0178.3: yrittää rajoittaa omaa istumistaan KOULUPÄIVÄN aikana. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 319 | 846 | 1165 | 13 | 0: 341, NA: 319, 1: 97, 3: 90 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0179.3: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)324 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_02_diff | Kys0179.3: yrittää rajoittaa omaa istumistaan VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 324 | 841 | 1165 | 13 | 0: 327, NA: 324, 1: 102, 3: 84 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0180.3: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)325 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_01_diff | Kys0180.3: pitää hyväksyttävänä, että yritän rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 325 | 840 | 1165 | 13 | 0: 346, NA: 325, 1: 97, 3: 97 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0181.3: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)330 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_02_diff | Kys0181.3: Suurin osa opettajistani hyväksyisi sen, jos rajoitan omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 330 | 835 | 1165 | 13 | NA: 330, 0: 311, 1: 130, -1: 94 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0187.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_01_diff | Kys0187.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 321 | 844 | 1165 | 13 | NA: 321, 0: 274, 1: 140, -1: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0188.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)326 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_02_diff | Kys0188.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana KOULUSSA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 326 | 839 | 1165 | 13 | NA: 326, 0: 264, 1: 153, -1: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0189.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)327 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_03_diff | Kys0189.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Epätodennäköistä1=1,2=2,3=3,4=4,5=5,6=6,Todennäköistä7=7 | 327 | 838 | 1165 | 13 | NA: 327, 0: 291, 1: 136, -1: 114 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0190.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)325 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_04_diff | Kys0190.3: Aion rajoittaa omaa istumistani seuraavan kuukauden aikana VAPAA-AJALLA. | labelled | FALSE | Ehdottomasti en1=1,2=2,3=3,4=4,5=5,6=6,Ehdottomasti kyllä7=7 | 325 | 840 | 1165 | 13 | NA: 325, 0: 277, 1: 155, -1: 130 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0171.3: … oloni olisi epämukava.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)316 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_01_diff | Kys0171.3: … oloni olisi epämukava. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 316 | 849 | 1165 | 13 | NA: 316, 0: 277, -1: 111, -3: 96 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0172.3: … virkistyisin ja jaksaisin paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)326 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_02_diff | Kys0172.3: … virkistyisin ja jaksaisin paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 326 | 839 | 1165 | 13 | NA: 326, 0: 319, 1: 143, -1: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0173.3: keskittymiskykyni paranisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)326 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_03_diff | Kys0173.3: keskittymiskykyni paranisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 326 | 839 | 1165 | 13 | NA: 326, 0: 292, 1: 158, -1: 106 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0174.3: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)319 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_04_diff | Kys0174.3: niska-, hartia- ja selkäkivut sekä päänsäryt vähenisivät. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 319 | 846 | 1165 | 13 | NA: 319, 0: 287, 1: 126, -1: 120 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0175.3: lihakseni eivät rappeutuisi.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)323 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_05_diff | Kys0175.3: lihakseni eivät rappeutuisi. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 323 | 842 | 1165 | 13 | NA: 323, 0: 304, 1: 144, -1: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0176.3: aivoni toimisivat paremmin.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)322 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_06_diff | Kys0176.3: aivoni toimisivat paremmin. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 322 | 843 | 1165 | 13 | NA: 322, 0: 321, 1: 148, -1: 102 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0177.3: se häiritsisi asioiden tekemistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)323 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectationsNegative_07_diff | Kys0177.3: se häiritsisi asioiden tekemistä. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 323 | 842 | 1165 | 13 | NA: 323, 0: 282, -1: 112, 1: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0182.3: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_01_diff | Kys0182.3: Jos haluan, voin rajoittaa omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 321 | 844 | 1165 | 13 | NA: 321, 0: 289, 1: 127, -1: 112 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0183.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_02_diff | Kys0183.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani KOULUSSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 321 | 844 | 1165 | 13 | NA: 321, 0: 277, 1: 127, -1: 117 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0184.3: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_03_diff | Kys0184.3: Jos haluan, voin rajoittaa omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 321 | 844 | 1165 | 13 | 0: 404, NA: 321, -1: 106, 1: 98 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0185.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)323 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_04_diff | Kys0185.3: Voin itse täysin vaikuttaa siihen rajoitanko omaa istumistani VAPAA-AJALLA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 323 | 842 | 1165 | 13 | 0: 393, NA: 323, -1: 109, 1: 94 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0186.3: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)334 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_05_diff | Kys0186.3: Jos haluan, voin rajoittaa omaa istumistani TYÖSSÄ OPPIMASSA. | labelled | FALSE | Täysin eri mieltä1=1,2=2,3=3,Ei samaa eikä eri mieltä4=4,5=5,6=6,Täysin samaa mieltä7=7 | 334 | 831 | 1165 | 13 | NA: 334, 0: 302, 1: 111, -1: 106 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Keskimääräinen makuun ja istumisen (SB) aika päivässä (T3)
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)733 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sitLieAccelerometer_diff | Keskimääräinen makuun ja istumisen (SB) aika päivässä (T3) | numeric | 733 | 432 | 1165 | -16.57 | 81.28 | -298.72 | -69.39 | -19.43 | 32.97 | 309.6 | <U+ | 2581>< | U+2587> F8.2 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0031.3: Niska- tai hartiakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)317 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_neckShoulderPain_diff | Kys0031.3: Niska- tai hartiakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 317 | 848 | 1165 | 7 | 0: 511, NA: 317, 1: 153, -1: 131 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0032.3: Selän alaosan kipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_lowerBackPain_diff | Kys0032.3: Selän alaosan kipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 314 | 851 | 1165 | 7 | 0: 551, NA: 314, 1: 128, -1: 110 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0033.3: Vatsakipuja
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)342 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_stomachAche_diff | Kys0033.3: Vatsakipuja | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 342 | 823 | 1165 | 7 | 0: 530, NA: 342, 1: 139, -1: 114 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0034.3: Jännittyneisyyttä tai hermostuneisuutta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tensionNervousness_diff | Kys0034.3: Jännittyneisyyttä tai hermostuneisuutta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 314 | 851 | 1165 | 7 | 0: 459, NA: 314, 1: 195, -1: 141 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0035.3: Ärtyneisyyttä tai kiukunpurkauksia
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)325 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_irritabilityAngerbursts_diff | Kys0035.3: Ärtyneisyyttä tai kiukunpurkauksia | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 325 | 840 | 1165 | 6 | 0: 478, NA: 325, 1: 186, -1: 126 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0036.3: Vaikeuksia päästä uneen tai heräilemistä öisin
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)316 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_sleepDifficulty_diff | Kys0036.3: Vaikeuksia päästä uneen tai heräilemistä öisin | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 316 | 849 | 1165 | 7 | 0: 457, NA: 316, 1: 152, -1: 140 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0037.3: Päänsärkyä
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_headAche_diff | Kys0037.3: Päänsärkyä | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 312 | 853 | 1165 | 7 | 0: 505, NA: 312, 1: 171, -1: 122 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0038.3: Väsymystä tai heikotusta
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)308 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_tirednessFaintness_diff | Kys0038.3: Väsymystä tai heikotusta | labelled | FALSE | Harvoin tai ei lainkaan=1,Noin kerran kuussa=2,Noin kerran viikossa=3,Lähes joka päivä=4 | 308 | 857 | 1165 | 7 | 0: 430, NA: 308, 1: 189, -1: 150 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)301 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_agrbct_diff | numeric | 301 | 864 | 1165 | 0.1 | 1.23 | -5 | -0.6 | 0.05 | 0.8 | 4.7 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)303 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_amotivation_diff | numeric | 303 | 862 | 1165 | 0.084 | 0.82 | -3.5 | 0 | 0 | 0.25 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)297 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_autonomous_diff | numeric | 297 | 868 | 1165 | 0.035 | 0.75 | -3.67 | -0.33 | 0 | 0.44 | 3.67 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_controlled_diff | numeric | 302 | 863 | 1165 | 0.15 | 0.77 | -4 | -0.2 | 0 | 0.6 | 3.8 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)300 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_dnorm_diff | numeric | 300 | 865 | 1165 | -0.13 | 1.44 | -6 | -1 | 0 | 1 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)305 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_frqbct_diff | numeric | 305 | 860 | 1165 | 0.18 | 1.11 | -5.11 | -0.44 | 0.11 | 0.78 | 4.22 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite?
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)330 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_goal_diff | Kys0147.3: Onko sinulla tällä hetkellä liikuntatavoite? | labelled | FALSE | Kyllä (kerro lyhyesti, mikä tämänhetkinen liikuntatavoittees=0,Ei=1 | 330 | 835 | 1165 | 3 | 0: 600, NA: 330, 1: 143, -1: 92 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)304 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_inorm_diff | Kys0108.3: Vanhempani haluaisivat minun liikkuvan säännöllisesti, vähintään 1,5 tuntia viik | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,3=3,4=4,5=5,6=6,Pitää täysin paikkansa7=7 | 304 | 861 | 1165 | 13 | 0: 321, NA: 304, 1: 121, -1: 111 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intention_diff | numeric | 302 | 863 | 1165 | -0.27 | 1.67 | -6 | -1 | 0 | 0.5 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)296 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_outcomeExpectations_diff | numeric | 296 | 869 | 1165 | 0.071 | 0.91 | -3.58 | -0.42 | 0 | 0.5 | 5.55 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)297 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_opportunities_diff | numeric | 297 | 868 | 1165 | -0.27 | 0.89 | -3.91 | -0.79 | -0.23 | 0.25 | 3.43 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)298 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_pbc_diff | numeric | 298 | 867 | 1165 | -0.37 | 1.26 | -4.67 | -1 | -0.33 | 0.33 | 4.33 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)297 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_selfefficacy_diff | numeric | 297 | 868 | 1165 | -0.27 | 1.46 | -6 | -1 | 0 | 0.5 | 5.5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)317 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_dnorm_diff | numeric | 317 | 848 | 1165 | 0.14 | 1.86 | -6 | -0.5 | 0 | 1 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_inorm_diff | numeric | 314 | 851 | 1165 | 0.26 | 1.51 | -6 | -0.5 | 0 | 1 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)315 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_intention_diff | numeric | 315 | 850 | 1165 | 0.29 | 1.55 | -5.75 | -0.5 | 0 | 1 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_outcomeExpectations_diff | numeric | 314 | 851 | 1165 | 0.048 | 1.18 | -4.71 | -0.57 | 0 | 0.71 | 5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)316 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SB_sePbc_diff | numeric | 316 | 849 | 1165 | 0.014 | 1.43 | -6 | -0.6 | 0 | 0.8 | 6 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)276 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| symptom_diff | numeric | 276 | 889 | 1165 | 0.064 | 0.46 | -2 | -0.12 | 0 | 0.25 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actionplan_diff | numeric | 302 | 863 | 1165 | -0.054 | 0.91 | -3 | -0.5 | 0 | 0.25 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)301 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_copingplan_diff | numeric | 301 | 864 | 1165 | -0.03 | 0.87 | -3 | -0.5 | 0 | 0.5 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)297 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_sePbc_diff | numeric | 297 | 868 | 1165 | -0.32 | 1.07 | -4.67 | -0.92 | -0.25 | 0.25 | 3.75 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)301 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_actCop_diff | numeric | 301 | 864 | 1165 | -0.042 | 0.81 | -3 | -0.5 | 0 | 0.38 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_01_diff | Kys0080.3: koska muut ihmiset sanovat, että minun pitää liikkua. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 513, NA: 306, 1: 106, -1: 101 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_02_diff | Kys0081.3: koska muut ihmiset ovat tyytymättömiä minuun, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 575, NA: 306, 1: 106, -1: 63 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)313 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_03_diff | Kys0083.3: koska kaverini ja perheeni painostavat minua liikkumaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 313 | 852 | 1165 | 9 | 0: 538, NA: 313, 1: 104, -1: 92 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0084.3: koska tunnen syyllisyyttä, jos en liiku.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_01_diff | Kys0084.3: koska tunnen syyllisyyttä, jos en liiku. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 309 | 856 | 1165 | 9 | 0: 430, NA: 309, 1: 125, -1: 100 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)309 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_02_diff | Kys0085.3: koska tunnen itseni epäonnistuneeksi, jos en ole liikkunut vähään aikaan. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 309 | 856 | 1165 | 9 | 0: 396, NA: 309, 1: 156, -1: 109 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_01_diff | Kys0087.3: koska minusta on tärkeää nähdä vaivaa säännöllisen liikunnan eteen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 314 | 851 | 1165 | 9 | 0: 348, NA: 314, -1: 154, 1: 152 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0088.3: koska arvostan liikunnasta saamaani hyötyä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_02_diff | Kys0088.3: koska arvostan liikunnasta saamaani hyötyä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 312 | 853 | 1165 | 9 | 0: 413, NA: 312, 1: 134, -1: 132 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_03_diff | Kys0090.3: koska minulle on tärkeää liikkua säännöllisesti. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 310 | 855 | 1165 | 9 | 0: 389, NA: 310, 1: 176, -1: 156 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_01_diff | Kys0089.3: koska se sopii yhteen elämäntavoitteideni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 398, NA: 306, 1: 188, -1: 142 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)312 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_02_diff | Kys0092.3: …koska liikunta sopii yhteen arvojeni kanssa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 312 | 853 | 1165 | 9 | 0: 410, NA: 312, 1: 183, -1: 128 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)310 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_03_diff | Kys0094.3: koska liikunta on keskeinen osa sitä, kuka olen. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 310 | 855 | 1165 | 9 | 0: 415, NA: 310, 1: 182, -1: 126 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)306 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_01_diff | Kys0091.3: koska tunnen iloa ja tyytyväisyyttä, kun liikun. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 306 | 859 | 1165 | 9 | 0: 449, NA: 306, -1: 152, 1: 139 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0093.3: koska liikkuminen on hauskaa.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)314 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_02_diff | Kys0093.3: koska liikkuminen on hauskaa. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 314 | 851 | 1165 | 9 | 0: 435, NA: 314, 1: 160, -1: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}Kys0095.3: koska nautin liikuntahetkistä.
show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)321 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | label | data_type | ordered | value_labels | missing | complete | n | n_unique | top_counts | format.spss | display_width |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_03_diff | Kys0095.3: koska nautin liikuntahetkistä. | labelled | FALSE | Ei pidä lainkaan paikkansa1=1,2=2,Pitää osittain paikkansa3=3,4=4,Pitää täysin paikkansa5=5 | 321 | 844 | 1165 | 9 | 0: 408, NA: 321, 1: 171, -1: 148 | F1.0 | 0 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)300 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_intrinsic_diff | numeric | 300 | 865 | 1165 | 0.026 | 0.87 | -4 | -0.33 | 0 | 0.33 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_integrated_diff | numeric | 302 | 863 | 1165 | 0.087 | 0.87 | -4 | -0.33 | 0 | 0.67 | 3 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)300 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_identified_diff | numeric | 300 | 865 | 1165 | -0.02 | 0.93 | -3.67 | -0.67 | 0 | 0.67 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)302 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_introjected_diff | numeric | 302 | 863 | 1165 | 0.21 | 1.14 | -4 | -0.25 | 0 | 1 | 4 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)305 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | missing | complete | n | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PA_extrinsic_diff | numeric | 305 | 860 | 1165 | 0.11 | 0.83 | -4 | 0 | 0 | 0.33 | 3.67 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}show_missings <- FALSE
if (haven::is.labelled(item)) {
missings <- item[is.na(haven::zap_missing(item))]
attributes(missings) <- attributes(item)
if (!is.null(attributes(item)$labels)) {
attributes(missings)$labels <- attributes(missings)$labels[is.na(attributes(missings)$labels)]
attributes(item)$labels <- attributes(item)$labels[!is.na(attributes(item)$labels)]
}
if (is.numeric(item)) {
show_missings <- length(unique(haven::na_tag(missings))) > 1
item <- haven::zap_missing(item)
}
if (length(item_attributes$labels) == 0 && is.numeric(item)) {
item <- haven::zap_labels(item)
}
}
item_nomiss <- item[!is.na(item)]
# unnest mc_multiple and so on
if (
is.character(item_nomiss) &&
stringr::str_detect(item_nomiss, stringr::fixed(", ")) &&
(exists("type", item_info) &&
stringr::str_detect(item_info$type, pattern = stringr::fixed("multiple")))
) {
item_nomiss <- unlist(stringr::str_split(item_nomiss, pattern = stringr::fixed(", ")))
}
attributes(item_nomiss) <- attributes(item)
old_height <- knitr::opts_chunk$get("fig.height")
non_missing_choices <- item_attributes[["labels"]]
many_labels <- length(non_missing_choices) > 7
go_vertical <- !is.numeric(item_nomiss) || many_labels
if ( go_vertical ) {
# numeric items are plotted horizontally (because that's what usually expected)
# categorical items are plotted vertically because we can use the screen real estate better this way
if (is.null(choices) ||
dplyr::n_distinct(item_nomiss) > length(non_missing_choices)) {
non_missing_choices <- unique(item_nomiss)
names(non_missing_choices) <- non_missing_choices
}
choice_multiplier <- old_height/6.5
new_height <- 2 + choice_multiplier * length(non_missing_choices)
new_height <- ifelse(new_height > 20, 20, new_height)
new_height <- ifelse(new_height < 1, 1, new_height)
knitr::opts_chunk$set(fig.height = new_height)
}
wrap_at <- knitr::opts_chunk$get("fig.width") * 10# todo: if there are free-text choices mingled in with the pre-defined ones, don't show
# todo: show rare items if they are pre-defined
# todo: bin rare responses into "other category"
if (!length(item_nomiss)) {
cat("No non-missing values to show.")
} else if (is.numeric(item_nomiss) || dplyr::n_distinct(item_nomiss) < 20) {
plot_labelled(item_nomiss, item_name, wrap_at, go_vertical)
} else {
cat(dplyr::n_distinct(item_nomiss), " unique, categorical values, so not shown.")
}
knitr::opts_chunk$set(fig.height = old_height)0 missings.
attributes(item) <- item_attributes
df = data.frame(item)
names(df) = html_item_name
knitr::kable(codebook_table(df), escape = TRUE)| name | data_type | ordered | missing | complete | n | n_unique | top_counts | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 | V17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| trackSchool | factor | FALSE | 0 | 1165 | 1165 | 17 | Nur: 277, BA1: 149, HRC: 145, BA2: 131 | BA1 | BA2 | BA4 | HRC1 | HRC2 | HRC5 | IT1 | IT2 | NANA | Nur2 | Nur3 | Nur4 | Other1 | Other2 | Other3 | Other4 | Other5 |
if (show_missings) {
plot_labelled(missings, item_name, wrap_at)
}if (!is.null(item_info)) {
# don't show choices again, if they're basically same thing as value labels
if (!is.null(choices) && !is.null(item_info$choices) &&
all(names(na.omit(choices)) == item_info$choices) &&
all(na.omit(choices) == names(item_info$choices))) {
item_info$choices <- NULL
}
item_info$label_parsed <-
item_info$choice_list <- item_info$study_id <- item_info$id <- NULL
pander::pander(item_info)
}if (!is.null(choices) && length(choices) && length(choices) < 30) {
pander::pander(as.list(choices))
}missingness_reportAmong those who finished the survey. Only variables that have missings are shown.
if ( exists("ended", results) &&
exists("expired", results)) {
finisher_results <- dplyr::filter(results, !is.na(.data$ended))
} else {
finisher_results <- results
warning("Could not figure out who finished the surveys, because the ",
"variables expired and ended were missing.")
}## Warning: Could not figure out who finished the surveys, because the
## variables expired and ended were missing.
if (length(md_pattern)) {
pander::pander(md_pattern)
}| description | intervention | group | school | girl | track |
|---|---|---|---|---|---|
| Missings per variable | 81 | 81 | 81 | 81 | 81 |
| Missings in 0 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 4 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 2 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 304 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 308 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 7 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 307 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 8 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 5 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 330 variables | 0 | 0 | 0 | 0 | 0 |
| Missings in 6 variables | 1 | 1 | 1 | 1 | 1 |
| Missings in 9 variables | 1 | 1 | 1 | 1 | 1 |
| 581 other, less frequent patterns | 533 | 533 | 533 | 533 | 533 |
| symptom_T1 | padaysLastweek_T1 | pafreqUsually_T1 | pahrsLastweek_T1 |
|---|---|---|---|
| 81 | 83 | 83 | 83 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 533 | 531 | 531 | 531 |
| pahrsUsually_T1 | paminLastweek_T1 | paLastweek_T1 | PA_autonomous_T1 |
|---|---|---|---|
| 83 | 83 | 83 | 87 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 531 | 531 | 531 | 527 |
| PA_outcomeExpectations_T1 | PA_opportunities_T1 | PA_intrinsic_T1 |
|---|---|---|
| 87 | 90 | 91 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 527 | 524 | 523 |
| PA_identified_T1 | PA_actplan_01_T1 | PA_actplan_02_T1 | PA_actplan_03_T1 |
|---|---|---|---|
| 91 | 92 | 92 | 92 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 523 | 522 | 522 | 522 |
| PA_actplan_04_T1 | PA_copplan_01_T1 | PA_copplan_02_T1 | PA_copplan_03_T1 |
|---|---|---|---|
| 92 | 92 | 92 | 92 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 522 | 522 | 522 | 522 |
| PA_copplan_04_T1 | PA_dnorm_02_T1 | PA_dnorm_01_T1 | PA_inorm_01_T1 |
|---|---|---|---|
| 92 | 92 | 92 | 92 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 522 | 522 | 522 | 522 |
| PA_intention_01_T1 | PA_intention_02_T1 | PA_controlled_T1 | PA_dnorm_T1 |
|---|---|---|---|
| 92 | 92 | 92 | 92 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 522 | 522 | 522 | 522 |
| PA_inorm_T1 | PA_intention_T1 | PA_actionplan_T1 | PA_copingplan_T1 |
|---|---|---|---|
| 92 | 92 | 92 | 92 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 522 | 522 | 522 | 522 |
| PA_actCop_T1 | PA_integrated_T1 | PA_introjected_T1 | PA_amotivation_T1 |
|---|---|---|---|
| 92 | 92 | 92 | 93 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 522 | 522 | 522 | 521 |
| PA_agrbct_01_T1 | PA_agrbct_02_T1 | PA_agrbct_03_T1 | PA_agrbct_04_T1 |
|---|---|---|---|
| 94 | 94 | 94 | 94 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 520 | 520 | 520 | 520 |
| PA_agrbct_05_T1 | PA_agrbct_06_T1 | PA_agrbct_07_T1 | PA_agrbct_08_T1 |
|---|---|---|---|
| 94 | 94 | 94 | 94 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 520 | 520 | 520 | 520 |
| PA_agrbct_09_T1 | PA_agrbct_10_T1 | PA_outcomeExpectations_01_T1 |
|---|---|---|
| 94 | 94 | 94 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 520 | 520 | 520 |
| PA_outcomeExpectations_04_T1 | PA_outcomeExpectations_06_T1 |
|---|---|
| 94 | 94 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 520 | 520 |
| PA_selfefficacy_01_T1 | PA_selfefficacyReverseCoded_02_T1 | PA_agrbct_T1 |
|---|---|---|
| 94 | 94 | 94 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 520 | 520 | 520 |
| PA_pbc_T1 | PA_selfefficacy_T1 | PA_sePbc_T1 | PA_frqbct_01_T1 |
|---|---|---|---|
| 94 | 94 | 94 | 95 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 520 | 520 | 520 | 519 |
| PA_frqbct_02_T1 | PA_frqbct_03_T1 | PA_frqbct_04_T1 | PA_frqbct_05_T1 |
|---|---|---|---|
| 95 | 95 | 95 | 95 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 519 | 519 | 519 | 519 |
| PA_frqbct_06_T1 | PA_frqbct_07_T1 | PA_frqbct_08_T1 | PA_frqbct_09_T1 |
|---|---|---|---|
| 95 | 95 | 95 | 95 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 519 | 519 | 519 | 519 |
| PA_autonomous_03_T1 | PA_autonomous_04_T1 | PA_autonomous_07_T1 |
|---|---|---|
| 95 | 95 | 95 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 519 | 519 | 519 |
| PA_outcomeExpectations_12_T1 | PA_opportunities_01_T1 | PA_opportunities_04_T1 |
|---|---|---|
| 95 | 95 | 95 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 519 | 519 | 519 |
| PA_frqbct_T1 | PA_identified_03_T1 | PA_integrated_01_T1 | PA_intrinsic_01_T1 |
|---|---|---|---|
| 95 | 95 | 95 | 95 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 519 | 519 | 519 | 519 |
| PA_controlled_02_T1 | PA_outcomeExpectations_10_T1 | PA_pbc_01_T1 |
|---|---|---|
| 96 | 96 | 96 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 518 | 518 | 518 |
| PA_extrinsic_02_T1 | PA_extrinsic_T1 | PA_controlled_01_T1 |
|---|---|---|
| 96 | 96 | 97 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 518 | 518 | 517 |
| PA_controlled_04_T1 | PA_opportunities_07_T1 | PA_extrinsic_01_T1 |
|---|---|---|
| 97 | 97 | 97 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 517 | 517 | 517 |
| PA_introjected_01_T1 | PA_amotivation_03_T1 | PA_outcomeExpectations_05_T1 |
|---|---|---|
| 97 | 98 | 98 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 517 | 516 | 516 |
| PA_opportunities_02_T1 | big5openReverseCoded_02_T1 | PA_amotivation_04_T1 |
|---|---|---|
| 98 | 99 | 99 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 516 | 515 | 515 |
| PA_autonomous_06_T1 | PA_autonomous_08_T1 | PA_controlled_05_T1 |
|---|---|---|
| 99 | 99 | 99 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 515 | 515 | 515 |
| PA_outcomeExpectationsNegative_02_T1 | PA_opportunitiesReverseCoded_08_T1 |
|---|---|
| 99 | 99 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 515 | 515 |
| PA_pbc_03_T1 | PA_introjected_02_T1 | PA_integrated_03_T1 | PA_intrinsic_02_T1 |
|---|---|---|---|
| 99 | 99 | 99 | 99 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 515 | 515 | 515 | 515 |
| big5consReverseCoded_02_T1 | PA_opportunitiesReverseCoded_03_T1 |
|---|---|
| 100 | 100 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 514 | 514 |
| big5agrReverseCoded_02_T1 | big5neuroticism_01_T1 | PA_controlled_03_T1 |
|---|---|---|
| 101 | 101 | 101 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 513 | 513 | 513 |
| PA_outcomeExpectations_03_T1 | PA_outcomeExpectationsNegative_09_T1 |
|---|---|
| 101 | 101 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 516 | 513 |
| PA_opportunities_05_T1 | big5neuroticism_T1 | SB_inorm_T1 | SB_intention_T1 |
|---|---|---|---|
| 101 | 101 | 101 | 101 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 513 | 513 | 513 | 513 |
| SB_outcomeExpectations_T1 | SB_sePbc_T1 | PA_extrinsic_03_T1 |
|---|---|---|
| 101 | 101 | 101 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 513 | 513 | 513 |
| big5extraversion_01_T1 | PA_autonomous_01_T1 | PA_autonomous_02_T1 |
|---|---|---|
| 102 | 102 | 102 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 512 | 512 | 512 |
| PA_outcomeExpectations_11_T1 | PA_outcomeExpectationsNegative_08_T1 |
|---|---|
| 102 | 102 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 513 | 512 |
| PA_pbcReverseCoded_02_T1 | SB_outcomeExpectationsNegative_01_T1 |
|---|---|
| 102 | 102 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 512 | 512 |
| SB_outcomeExpectations_04_T1 | big5extraversion_T1 | PA_identified_01_T1 |
|---|---|---|
| 102 | 102 | 102 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 512 | 512 | 512 |
| PA_identified_02_T1 | big5extReverseCoded_02_T1 | big5openness_01_T1 |
|---|---|---|
| 102 | 103 | 103 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 512 | 511 | 511 |
| PA_amotivation_01_T1 | PA_autonomous_05_T1 | PA_outcomeExpectations_07_T1 |
|---|---|---|
| 103 | 103 | 103 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 511 | 511 | 511 |
| SB_sePbc_01_T1 | big5openness_T1 | SB_dnorm_T1 | PA_integrated_02_T1 |
|---|---|---|---|
| 103 | 103 | 103 | 103 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 511 | 511 | 511 | 511 |
| big5agreeableness_01_T1 | big5neurReverseCoded_02_T1 | PA_goal_01_T1 |
|---|---|---|
| 104 | 104 | 104 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 512 | 510 | 510 |
| SB_sePbc_02_T1 | big5agreeableness_T1 | PA_goal_T1 | SB_dnorm_02_T1 |
|---|---|---|---|
| 104 | 104 | 104 | 105 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 510 | 512 | 510 | 509 |
| SB_outcomeExpectations_05_T1 | SB_sePbc_03_T1 | SB_sePbc_04_T1 |
|---|---|---|
| 105 | 105 | 105 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 509 | 509 | 509 |
| big5conscientiousness_01_T1 | PA_opportunitiesReverseCoded_06_T1 |
|---|---|
| 106 | 106 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 508 | 508 |
| SB_dnorm_01_T1 | SB_intention_01_T1 | big5conscientiousness_T1 |
|---|---|---|
| 106 | 106 | 106 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 508 | 508 | 508 |
| SB_outcomeExpectations_03_T1 | SB_outcomeExpectations_06_T1 |
|---|---|
| 107 | 107 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 507 | 507 |
| symptom_tirednessFaintness_T1 | PA_amotivation_02_T1 | PA_autonomous_09_T1 |
|---|---|---|
| 107 | 108 | 108 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 507 | 507 | 507 |
| SB_outcomeExpectationsNegative_07_T1 | PA_intrinsic_03_T1 | SB_inorm_01_T1 |
|---|---|---|
| 108 | 108 | 109 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 506 | 507 | 506 |
| SB_intention_02_T1 | SB_outcomeExpectations_02_T1 | SB_intention_04_T1 |
|---|---|---|
| 109 | 109 | 110 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 505 | 505 | 505 |
| symptom_headAche_T1 | SB_intention_03_T1 | SB_sePbc_05_T1 | SB_inorm_02_T1 |
|---|---|---|---|
| 110 | 111 | 111 | 112 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 504 | 503 | 504 | 502 |
| symptom_lowerBackPain_T1 | symptom_sleepDifficulty_T1 |
|---|---|
| 112 | 113 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 502 | 501 |
| symptom_tensionNervousness_T1 | symptom_neckShoulderPain_T1 |
|---|---|
| 114 | 118 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 500 | 496 |
| symptom_irritabilityAngerbursts_T1 | symptom_stomachAche_T1 | fatpct_T1 |
|---|---|---|
| 126 | 139 | 203 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 488 | 484 | 477 |
| symptom_T3 | padaysLastweek_T3 | PA_selfefficacy_T3 | PA_sePbc_T3 |
|---|---|---|---|
| 216 | 221 | 228 | 228 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 508 | 506 | 499 | 499 |
| PA_opportunities_07_T3 | PA_selfefficacyReverseCoded_02_T3 |
|---|---|
| 229 | 229 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 498 | 498 |
| PA_outcomeExpectations_T3 | PA_opportunities_T3 | pafreqUsually_T3 |
|---|---|---|
| 229 | 229 | 231 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 498 | 498 | 496 |
| symptom_headAche_T3 | PA_pbc_T3 | PA_pbc_01_T3 | symptom_tirednessFaintness_T3 |
|---|---|---|---|
| 231 | 231 | 232 | 232 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 493 | 496 | 495 | 492 |
| PA_outcomeExpectations_01_T3 | PA_opportunities_04_T3 |
|---|---|
| 233 | 233 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 494 | 494 |
| PA_opportunitiesReverseCoded_06_T3 | PA_agrbct_T3 | PA_autonomous_T3 |
|---|---|---|
| 233 | 233 | 233 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 494 | 494 | 494 |
| PA_dnorm_T3 | PA_copingplan_T3 | PA_actCop_T3 | PA_copplan_01_T3 |
|---|---|---|---|
| 233 | 233 | 233 | 234 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 494 | 494 | 494 | 493 |
| PA_dnorm_01_T3 | PA_outcomeExpectationsNegative_08_T3 |
|---|---|
| 234 | 234 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 493 | 493 |
| PA_pbcReverseCoded_02_T3 | PA_selfefficacy_01_T3 |
|---|---|
| 234 | 234 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 493 | 493 |
| symptom_tensionNervousness_T3 | PA_amotivation_T3 | PA_intention_T3 |
|---|---|---|
| 234 | 234 | 234 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 490 | 493 | 493 |
| PA_identified_T3 | PA_outcomeExpectations_05_T3 | PA_opportunities_01_T3 |
|---|---|---|
| 234 | 235 | 235 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 493 | 492 | 492 |
| PA_opportunities_02_T3 | PA_opportunities_05_T3 |
|---|---|
| 235 | 235 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 492 | 493 |
| PA_opportunitiesReverseCoded_03_T3 | PA_pbc_03_T3 |
|---|---|
| 235 | 235 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 492 | 492 |
| symptom_neckShoulderPain_T3 | PA_controlled_T3 | PA_actionplan_T3 |
|---|---|---|
| 235 | 235 | 235 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 490 | 492 | 492 |
| PA_introjected_T3 | PA_amotivation_04_T3 | PA_copplan_02_T3 |
|---|---|---|
| 235 | 236 | 236 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 492 | 491 | 491 |
| PA_outcomeExpectations_04_T3 | pahrsUsually_T3 | symptom_sleepDifficulty_T3 |
|---|---|---|
| 236 | 236 | 236 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 491 | 493 | 489 |
| PA_intrinsic_T3 | PA_integrated_T3 | PA_agrbct_01_T3 | PA_copplan_03_T3 |
|---|---|---|---|
| 236 | 236 | 237 | 237 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 491 | 491 | 490 | 490 |
| PA_controlled_01_T3 | PA_frqbct_01_T3 | PA_outcomeExpectations_06_T3 |
|---|---|---|
| 237 | 237 | 237 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 490 | 490 | 490 |
| PA_outcomeExpectations_10_T3 | PA_frqbct_T3 | PA_extrinsic_01_T3 |
|---|---|---|
| 237 | 237 | 237 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 490 | 490 | 490 |
| PA_extrinsic_T3 | PA_agrbct_04_T3 | PA_dnormparents_02_T3 | PA_inorm_01_T3 |
|---|---|---|---|
| 237 | 238 | 238 | 238 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 490 | 489 | 489 | 489 |
| PA_outcomeExpectations_11_T3 | PA_outcomeExpectationsNegative_02_T3 |
|---|---|
| 238 | 238 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 489 | 489 |
| PA_inorm_T3 | PA_agrbct_03_T3 | PA_agrbct_05_T3 | PA_controlled_02_T3 |
|---|---|---|---|
| 238 | 239 | 239 | 239 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 489 | 488 | 488 | 488 |
| PA_autonomous_04_T3 | PA_autonomous_05_T3 | PA_controlled_05_T3 |
|---|---|---|
| 239 | 239 | 239 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 488 | 488 | 488 |
| PA_outcomeExpectations_03_T3 | PA_outcomeExpectations_07_T3 |
|---|---|
| 239 | 239 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 488 | 488 |
| PA_outcomeExpectationsNegative_09_T3 | symptom_irritabilityAngerbursts_T3 |
|---|---|
| 239 | 239 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 488 | 485 |
| PA_extrinsic_02_T3 | PA_introjected_02_T3 | PA_integrated_01_T3 |
|---|---|---|
| 239 | 239 | 239 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 488 | 488 | 488 |
| PA_integrated_02_T3 | PA_agrbct_02_T3 | PA_agrbct_09_T3 | PA_autonomous_02_T3 |
|---|---|---|---|
| 239 | 240 | 240 | 240 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 488 | 487 | 487 | 487 |
| symptom_lowerBackPain_T3 | PA_identified_02_T3 | PA_autonomous_01_T3 |
|---|---|---|
| 240 | 240 | 241 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 485 | 487 | 486 |
| PA_autonomous_06_T3 | PA_intention_02_T3 | PA_autonomous_07_T3 |
|---|---|---|
| 241 | 241 | 241 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 486 | 486 | 486 |
| PA_identified_01_T3 | PA_integrated_03_T3 | PA_intrinsic_01_T3 |
|---|---|---|
| 241 | 241 | 241 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 486 | 486 | 486 |
| PA_agrbct_08_T3 | PA_autonomous_08_T3 | PA_intrinsic_02_T3 | PA_actplan_01_T3 |
|---|---|---|---|
| 242 | 242 | 242 | 243 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 485 | 485 | 485 | 484 |
| PA_copplan_04_T3 | PA_frqbct_02_T3 | PA_frqbct_03_T3 | PA_frqbct_07_T3 |
|---|---|---|---|
| 243 | 243 | 243 | 243 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 485 | 484 | 484 | 485 |
| PA_frqbct_08_T3 | PA_outcomeExpectations_12_T3 | PA_actplan_04_T3 |
|---|---|---|
| 243 | 243 | 244 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 484 | 484 | 483 |
| PA_agrbct_10_T3 | PA_amotivation_01_T3 | PA_controlled_03_T3 |
|---|---|---|
| 244 | 244 | 244 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 483 | 483 | 483 |
| PA_autonomous_03_T3 | PA_controlled_04_T3 | PA_extrinsic_03_T3 |
|---|---|---|
| 244 | 244 | 244 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 483 | 483 | 483 |
| PA_introjected_01_T3 | PA_identified_03_T3 | PA_actplan_02_T3 |
|---|---|---|
| 244 | 244 | 245 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 483 | 483 | 482 |
| PA_amotivation_03_T3 | PA_intention_01_T3 | PA_amotivation_02_T3 |
|---|---|---|
| 245 | 245 | 246 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 482 | 483 | 481 |
| PA_frqbct_04_T3 | PA_autonomous_09_T3 | PA_intrinsic_03_T3 | PA_actplan_03_T3 |
|---|---|---|---|
| 246 | 247 | 247 | 248 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 481 | 480 | 480 | 480 |
| PA_agrbct_06_T3 | PA_agrbct_07_T3 | SB_inorm_T3 | SB_intention_T3 |
|---|---|---|---|
| 248 | 248 | 248 | 248 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 479 | 479 | 480 | 480 |
| SB_outcomeExpectations_T3 | PA_frqbct_06_T3 | SB_dnorm_01_T3 |
|---|---|---|
| 248 | 249 | 249 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 480 | 478 | 479 |
| symptom_stomachAche_T3 | SB_dnorm_T3 | SB_sePbc_T3 | PA_frqbct_05_T3 |
|---|---|---|---|
| 249 | 249 | 249 | 250 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 475 | 479 | 479 | 477 |
| SB_outcomeExpectationsNegative_01_T3 | PA_frqbct_09_T3 | SB_inorm_01_T3 |
|---|---|---|
| 250 | 252 | 252 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 478 | 476 | 477 |
| SB_intention_01_T3 | SB_intention_04_T3 | SB_outcomeExpectationsNegative_07_T3 |
|---|---|---|
| 252 | 252 | 252 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 476 | 476 | 476 |
| SB_sePbc_02_T3 | SB_sePbc_03_T3 | SB_intention_03_T3 |
|---|---|---|
| 252 | 252 | 253 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 476 | 476 | 476 |
| SB_outcomeExpectations_04_T3 | SB_sePbc_01_T3 | SB_sePbc_04_T3 |
|---|---|---|
| 253 | 253 | 253 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 475 | 475 | 475 |
| SB_intention_02_T3 | SB_outcomeExpectations_02_T3 |
|---|---|
| 254 | 254 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 474 | 474 |
| SB_outcomeExpectations_05_T3 | SB_dnorm_02_T3 | SB_outcomeExpectations_03_T3 |
|---|---|---|
| 254 | 255 | 256 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 474 | 473 | 472 |
| SB_outcomeExpectations_06_T3 | PA_goal_01_T3 | SB_inorm_02_T3 | PA_goal_T3 |
|---|---|---|---|
| 256 | 257 | 257 | 257 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 472 | 471 | 472 | 471 |
| SB_sePbc_05_T3 | pahrsLastweek_T3 | symptom_diff | padaysLastweek_diff |
|---|---|---|---|
| 259 | 264 | 276 | 283 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 471 | 474 | 465 | 461 |
| pafreqUsually_diff | PA_outcomeExpectations_diff | pahrsUsually_diff |
|---|---|---|
| 292 | 296 | 297 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 452 | 448 | 449 |
| PA_autonomous_diff | PA_opportunities_diff | PA_selfefficacy_diff |
|---|---|---|
| 297 | 297 | 297 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 447 | 447 | 447 |
| PA_sePbc_diff | PA_selfefficacyReverseCoded_02_diff | PA_pbc_diff |
|---|---|---|
| 297 | 298 | 298 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 447 | 446 | 446 |
| PA_pbc_01_diff | PA_dnorm_diff | PA_intrinsic_diff | PA_identified_diff |
|---|---|---|---|
| 300 | 300 | 300 | 300 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 444 | 444 | 444 | 444 |
| PA_copplan_01_diff | PA_dnorm_01_diff | PA_agrbct_diff | PA_copingplan_diff |
|---|---|---|---|
| 301 | 301 | 301 | 301 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 443 | 443 | 443 | 443 |
| PA_actCop_diff | PA_opportunities_04_diff | PA_selfefficacy_01_diff |
|---|---|---|
| 301 | 302 | 302 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 443 | 442 | 442 |
| PA_controlled_diff | PA_intention_diff | PA_actionplan_diff |
|---|---|---|
| 302 | 302 | 302 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 442 | 442 | 442 |
| PA_integrated_diff | PA_introjected_diff | PA_copplan_02_diff |
|---|---|---|
| 302 | 302 | 303 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 442 | 442 | 441 |
| PA_dnorm_02_diff | PA_opportunities_07_diff | PA_amotivation_diff |
|---|---|---|
| 303 | 303 | 303 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 441 | 441 | 441 |
| PA_agrbct_01_diff | PA_agrbct_04_diff | PA_copplan_03_diff | PA_inorm_01_diff |
|---|---|---|---|
| 304 | 304 | 304 | 304 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 440 | 440 | 440 | 440 |
| PA_outcomeExpectations_01_diff | PA_pbc_03_diff | PA_inorm_diff |
|---|---|---|
| 304 | 304 | 304 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 440 | 440 | 440 |
| PA_agrbct_05_diff | PA_frqbct_01_diff | PA_outcomeExpectations_04_diff |
|---|---|---|
| 305 | 305 | 305 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 439 | 439 | 439 |
| PA_frqbct_diff | PA_extrinsic_diff | PA_agrbct_02_diff | PA_agrbct_03_diff |
|---|---|---|---|
| 305 | 305 | 306 | 306 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 439 | 439 | 438 | 438 |
| PA_controlled_01_diff | PA_controlled_02_diff | PA_autonomous_04_diff |
|---|---|---|
| 306 | 306 | 306 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 438 | 438 | 438 |
| PA_autonomous_07_diff | PA_opportunities_01_diff | PA_opportunities_02_diff |
|---|---|---|
| 306 | 306 | 306 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 438 | 438 | 438 |
| PA_pbcReverseCoded_02_diff | PA_extrinsic_01_diff | PA_extrinsic_02_diff |
|---|---|---|
| 306 | 306 | 306 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 438 | 438 | 438 |
| PA_integrated_01_diff | PA_intrinsic_01_diff | PA_agrbct_08_diff |
|---|---|---|
| 306 | 306 | 307 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 438 | 438 | 437 |
| PA_agrbct_09_diff | PA_copplan_04_diff | PA_intention_02_diff |
|---|---|---|
| 307 | 307 | 307 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 437 | 438 | 437 |
| PA_outcomeExpectations_05_diff | PA_outcomeExpectations_06_diff |
|---|---|
| 307 | 307 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 437 | 437 |
| PA_outcomeExpectations_10_diff | PA_amotivation_04_diff |
|---|---|
| 307 | 308 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 437 | 436 |
| symptom_tirednessFaintness_diff | PA_actplan_01_diff | PA_frqbct_02_diff |
|---|---|---|
| 308 | 309 | 309 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 433 | 435 | 435 |
| PA_frqbct_03_diff | PA_frqbct_08_diff | PA_controlled_04_diff |
|---|---|---|
| 309 | 309 | 309 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 435 | 435 | 435 |
| PA_controlled_05_diff | PA_outcomeExpectationsNegative_08_diff |
|---|---|
| 309 | 309 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 435 | 435 |
| PA_opportunities_05_diff | PA_opportunitiesReverseCoded_03_diff |
|---|---|
| 309 | 309 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 436 | 435 |
| PA_introjected_01_diff | PA_introjected_02_diff | PA_actplan_04_diff |
|---|---|---|
| 309 | 309 | 310 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 435 | 435 | 434 |
| PA_agrbct_10_diff | PA_frqbct_07_diff | PA_autonomous_03_diff |
|---|---|---|
| 310 | 310 | 310 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 434 | 435 | 434 |
| PA_autonomous_06_diff | PA_identified_03_diff | PA_integrated_03_diff |
|---|---|---|
| 310 | 310 | 310 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 434 | 434 | 434 |
| PA_actplan_02_diff | PA_frqbct_04_diff | PA_intention_01_diff |
|---|---|---|
| 311 | 311 | 311 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 433 | 433 | 434 |
| PA_outcomeExpectations_12_diff | PA_outcomeExpectationsNegative_02_diff |
|---|---|
| 311 | 311 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 433 | 433 |
| PA_agrbct_07_diff | PA_amotivation_03_diff | PA_autonomous_02_diff |
|---|---|---|
| 312 | 312 | 312 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 432 | 432 | 432 |
| PA_autonomous_05_diff | PA_opportunitiesReverseCoded_06_diff |
|---|---|
| 312 | 312 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 432 | 432 |
| symptom_headAche_diff | PA_identified_02_diff | PA_integrated_02_diff |
|---|---|---|
| 312 | 312 | 312 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 429 | 432 | 432 |
| PA_actplan_03_diff | PA_controlled_03_diff | PA_frqbct_06_diff |
|---|---|---|
| 313 | 313 | 313 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 432 | 431 | 431 |
| PA_outcomeExpectations_07_diff | PA_outcomeExpectations_11_diff |
|---|---|
| 313 | 313 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 431 | 431 |
| PA_extrinsic_03_diff | PA_agrbct_06_diff | PA_frqbct_05_diff |
|---|---|---|
| 313 | 314 | 314 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 431 | 430 | 430 |
| PA_autonomous_01_diff | PA_autonomous_08_diff | PA_outcomeExpectations_03_diff |
|---|---|---|
| 314 | 314 | 314 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 430 | 430 | 433 |
| PA_outcomeExpectationsNegative_09_diff | symptom_lowerBackPain_diff |
|---|---|
| 314 | 314 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 430 | 428 |
| symptom_tensionNervousness_diff | SB_inorm_diff | SB_outcomeExpectations_diff |
|---|---|---|
| 314 | 314 | 314 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 427 | 431 | 431 |
| PA_identified_01_diff | PA_intrinsic_02_diff | SB_intention_diff |
|---|---|---|
| 314 | 314 | 315 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 430 | 430 | 430 |
| SB_outcomeExpectationsNegative_01_diff | symptom_sleepDifficulty_diff |
|---|---|
| 316 | 316 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 429 | 426 |
| SB_sePbc_diff | PA_amotivation_01_diff | PA_frqbct_09_diff |
|---|---|---|
| 316 | 317 | 317 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 429 | 427 | 428 |
| symptom_neckShoulderPain_diff | SB_dnorm_diff | PA_amotivation_02_diff |
|---|---|---|
| 317 | 317 | 318 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 425 | 428 | 426 |
| SB_dnorm_01_diff | SB_outcomeExpectations_04_diff | PA_autonomous_09_diff |
|---|---|---|
| 319 | 319 | 321 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 426 | 426 | 423 |
| SB_intention_01_diff | SB_sePbc_01_diff | SB_sePbc_02_diff | SB_sePbc_03_diff |
|---|---|---|---|
| 321 | 321 | 321 | 321 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 424 | 424 | 424 | 424 |
| PA_intrinsic_03_diff | SB_outcomeExpectations_06_diff | pahrsLastweek_diff |
|---|---|---|
| 321 | 322 | 323 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 423 | 423 | 432 |
| SB_outcomeExpectations_05_diff | SB_outcomeExpectationsNegative_07_diff |
|---|---|
| 323 | 323 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 422 | 422 |
| SB_sePbc_04_diff | SB_dnorm_02_diff | SB_inorm_01_diff | SB_intention_04_diff |
|---|---|---|---|
| 323 | 324 | 325 | 325 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 422 | 421 | 422 | 421 |
| symptom_irritabilityAngerbursts_diff | SB_intention_02_diff |
|---|---|
| 325 | 326 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 416 | 419 |
| SB_outcomeExpectations_02_diff | SB_outcomeExpectations_03_diff |
|---|---|
| 326 | 326 |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
| 419 | 419 |
| SB_intention_03_diff | PA_goal_01_diff | SB_inorm_02_diff | PA_goal_diff |
|---|---|---|---|
| 327 | 330 | 330 | 330 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 419 | 415 | 416 | 415 |
| SB_sePbc_05_diff | symptom_stomachAche_diff | paminLastweek_T3 |
|---|---|---|
| 334 | 342 | 440 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 1 |
| 1 | 1 | 0 |
| 1 | 1 | 0 |
| 414 | 407 | 378 |
| paAccelerometer_T1 | sitLieAccelerometer_T1 | sitBreaks_T1 |
|---|---|---|
| 452 | 452 | 452 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 339 | 339 | 339 |
| paminLastweek_diff | paAccelerometer_T3 | sitLieAccelerometer_T3 |
|---|---|---|
| 488 | 657 | 657 |
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 345 | 242 | 242 |
| paAccelerometer_diff | sitLieAccelerometer_diff | var_miss | n_miss |
|---|---|---|---|
| 733 | 733 | 104270 | 104270 |
| 1 | 1 | 0 | 156 |
| 0 | 0 | 4 | 62 |
| 1 | 1 | 2 | 47 |
| 0 | 0 | 304 | 44 |
| 0 | 0 | 308 | 40 |
| 0 | 0 | 7 | 38 |
| 0 | 0 | 307 | 30 |
| 0 | 0 | 8 | 21 |
| 0 | 0 | 5 | 14 |
| 0 | 0 | 330 | 13 |
| 0 | 0 | 6 | 12 |
| 0 | 0 | 9 | 12 |
| 191 | 191 | 49922 | 676 |
itemsexport_table(metadata_table)jsonldprint("öäa??????")## [1] "öäa??????"